Eclipse Photon 不解析测试源中的导入



我已经搬到了Eclipse Photon,并拥有现有的工作空间。我在这个工作区中有一些Maven项目。所有项目在Eclipse Oxygen中都没有任何错误。在Eclipse Photon中打开我的工作区后,所有导入org.mockito.Mockitoorg.springframework.mockorg.springframework.test的测试类都有错误。尽管 Eclipse 知道这些导入,但我可以跳到类中,但无法解析这些导入。

为什么Eclipse Photon不能解决这些导入?我该如何解决这个问题?

如果这确实是一个 maven 项目,并且您使用的是匹配的 m2e 版本 1.9,它应该自动配置"包含测试源"。-设置和相关设置正确。

您可能需要通过右键单击项目并选择"Maven">"更新项目"来更新项目类路径

我解决了它,想分享我的结果。

日食光子中的构建路径属性在源选项卡中有一个新选项:包含测试源。对于文件夹myproject/src/test/java,此选项设置为">"。当我尝试将其设置为"是">时,出现以下错误:

项目 'myproject' 中的源文件夹 'src/testjava' 必须有一个 不用于主源的输出文件夹

尽管输出文件夹已设置为与myproject/src/main/java的路径不同的路径,但仍显示错误。要重置设置,我取消选中了"允许源文件夹输出文件夹"选项,然后再次设置所有输出文件夹。之后,我能够将提到的选项设置为"是"。结果,导入问题得到了解决。

此处描述了原因(向下滚动到测试源(。它说:

对于每个项目,编译现在分两个阶段完成:首先是 主要来源(在构建路径上看不到任何测试代码(和 然后是所有测试源。

由于该选项未设置为测试源文件夹,因此它像主源文件夹一样编译。因此,无法解析从具有范围测试的依赖项导入测试类的问题。

对于我基于 Maven 的项目,我能够通过进入项目的 .classpath 文件并添加...

<attribute name="test" value="true"/>

标记到属性,即

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>

希望有帮助。

最新更新