最近发布的Eclipse Photon具有一项功能,它可以自动列出范围设置为test
且属性“仅对测试源可见”设置为yes的库,并且无法将其关闭。
由于这个原因,我面临的问题是,我们的Eclipse项目目前都没有将测试源文件夹标记为test文件夹。作为公司环境,我无法继续前进,只能更新所有奇特的数百个项目。此外,我们的组织机构尚未正式支持Eclipse Photon。
所以,这意味着我最终在所有测试文件夹中都遇到了数千个编译错误,因为它们的依赖项现在仅适用于标记为“ test”的文件夹。
如何关闭此功能?
答案 0 :(得分:1)
请参阅文章“ Eclipse Project Photon-新颖且值得关注”的Test sources section:
...对于项目和库,有一个属性仅对 测试源。类路径容器也存在此设置,并且 如果其中一项设置为“是”,则该值将用于所有 包含库和项目。
您可以通过选择包含测试源,从 Java构建路径>源下的 {您的项目}>属性打开或关闭设置。 strong>,然后点击切换按钮:
因此您已经在正确的屏幕上可以解决此问题;只需单击来源标签,然后将包含测试源设置为否。
答案 1 :(得分:0)
我认为您实际上正在使用maven,并且作为m2e的“ Maven Dependencies”类路径容器的一部分,测试依赖项自动设置为“仅对测试源可见”。
如果您不选择更新 .classpath
文件(通过右键单击项目并选择“ Maven”>“更新项目”),则可以通过以下方式降级m2e插件:卸载并从http://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>