最近发布的 Eclipse Photon 有一个功能,它会自动列出范围设置为test
的库,属性“仅对测试源可见”设置为 yes,并且无法关闭。
因此,我面临的问题是,我们的 Eclipse 项目目前都没有将测试源文件夹标记为测试文件夹。作为一个企业环境,我不能继续更新所有奇怪的数百个项目。此外,我们的组织还没有正式支持 Eclipse Photon。
因此,这意味着我最终在所有测试文件夹中都会出现数千个编译错误,因为它们的依赖项现在仅可用于标记为“测试”的文件夹。
如何关闭此功能?
最近发布的 Eclipse Photon 有一个功能,它会自动列出范围设置为test
的库,属性“仅对测试源可见”设置为 yes,并且无法关闭。
因此,我面临的问题是,我们的 Eclipse 项目目前都没有将测试源文件夹标记为测试文件夹。作为一个企业环境,我不能继续更新所有奇怪的数百个项目。此外,我们的组织还没有正式支持 Eclipse Photon。
因此,这意味着我最终在所有测试文件夹中都会出现数千个编译错误,因为它们的依赖项现在仅可用于标记为“测试”的文件夹。
如何关闭此功能?
请参阅文章“ Eclipse Project Photon - New and Noteworthy ”的测试源部分:
...对于项目和库,有一个属性Visible only for test sources。此设置也存在于类路径容器中,如果其中一个设置为 Yes,则此值将用于所有包含的库和项目。
您可以通过选择条目包含测试源并单击切换按钮,从{your project} > Properties under Java Build Path > Source打开或关闭该设置:
所以你已经在正确的屏幕上解决问题了;只需单击Source选项卡并将包含测试源设置为No。
我认为您实际上正在使用 Maven,并且测试依赖项自动设置为“仅对测试源可见”作为 m2e 的“Maven 依赖项”类路径容器的一部分。
如果更新文件(通过右键单击项目并选择“Maven”>“更新项目”)不是您的选项,您可以通过卸载 m2e-plugin 并从http:/.classpath
安装旧版本来降级 m2e-plugin /download.eclipse.org/technology/m2e/releases/(我已验证 1.8.3.20180227-2137 有效)。
更新:在 m2e 1.9.1 中,您可以使用“检查更新”将其安装在 Eclipse Photon 中,并且包含在 Eclipse 2018-09(Photon 的继任者)中,您可以通过将 maven 属性设置为来禁用测试类路径m2e.disableTestClasspathFlag
分离true
。您可以通过在单个pom.xml
文件中设置它在项目级别上执行此操作,也可以通过将其添加为用户中的活动配置文件的属性来为整个工作区执行此操作settings.xml
。
如果您还没有用户setting.xml
,请使用以下内容创建一个用户,然后在 Eclipse 中选择它Preferences > Maven > Users Settings
作为User Settings
. 然后右键单击项目并为所有项目选择“Maven”>“更新项目”。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>default</id>
<properties>
<m2e.disableTestClasspathFlag>true</m2e.disableTestClasspathFlag>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
</settings>