将maven项目导入Eclipse会在for tests中出现一堆“无法解析为类型”的错误

qrjkbowd  于 2023-06-05  发布在  Maven
关注(0)|答案(1)|浏览(223)

我将https://github.com/pf4j/pf4j导入到Eclipse 4.27.0,安装了M2 E插件,并在测试文件夹中获得了一堆错误:

Description Resource    Path    Location    Type
AbstractExtensionFinder cannot be resolved  AbstractExtensionFinderTest.java    /pf4j/src/test/java/org/pf4j    line 260    Java Problem
AbstractExtensionFinder cannot be resolved  AbstractExtensionFinderTest.java    /pf4j/src/test/java/org/pf4j    line 273    Java Problem
AbstractExtensionFinder cannot be resolved to a type    AbstractExtensionFinderTest.java    /pf4j/src/test/java/org/pf4j    line 75 Java Problem
AbstractExtensionFinder cannot be resolved to a type    AbstractExtensionFinderTest.java    /pf4j/src/test/java/org/pf4j    line 97 Java Problem
...

其中,从cmd项目由maven编译而没有错误,Intellij Idea导入项目而没有错误。Eclipse有什么问题?

UPD我现在看到了,src/main/java中的代码显示为文件夹而不是包,这很奇怪,因为在测试文件夹中它显示为包,因为它应该是。

UPDJava Build Path / Sources似乎可以。

relj7zay

relj7zay1#

这个项目在m2 e中的几个问题:

  • 父pom声明maven.compiler.release=1.8,而子模块做“模块的东西”(java 9+)..这混淆了m2 e。(,me 2完全:)
  • pf 4j模块中的“复杂编译”

(当前主版本)在每次“项目导入/maven更新”之后执行以下操作:

(This是“太窄/少”包括,)这解释了eclipse“问题”。
要修复它(暂时),我们可以删除这些包括:

对于永久修复:pf 4j和m2 e必须以某种方式“相遇”:)
兹提议:

<profiles>
    <profile>
        <id>j9</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <executions>
                        <!-- compile module-info.java for Java 9+ -->
                        <execution>
                            <id>java9-compile</id>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                            <configuration>
                                <release>9</release>
                                <multiReleaseOutput>true</multiReleaseOutput>
                                <includes>
                                    <include>module-info.java</include>
                                </includes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

... to move the“exotic(to blame)compilation”to a“custom profile”.
这使得:

  • graceful m2e-re-import
  • “异国汇编”通过配置文件

(让双方都高兴)
对于“演示模块”,“关闭(m2 e)工作空间分辨率”/修复pf 4j模块就足够了;)

相关问题