【问题标题】:How do I turn off the "Visible only for test sources" feature in Eclipse Photon?如何关闭 Eclipse Photon 中的“仅对测试源可见”功能?
【发布时间】:2018-07-04 20:54:34
【问题描述】:

最近发布的 Eclipse Photon 有一个功能,它会自动列出范围设置为 test 的库,并将属性“仅对测试源可见”设置为是,并且无法关闭。

因此,我面临的问题是,我们的 Eclipse 项目目前都没有将测试源文件夹标记为测试文件夹。作为一个企业环境,我不能继续更新所有奇怪的数百个项目。此外,我们的组织尚未正式支持 Eclipse Photon。

因此,这意味着我最终在所有测试文件夹中都会出现数千个编译错误,因为它们的依赖项现在仅可用于标记为“测试”的文件夹。

如何关闭此功能?

【问题讨论】:

  • 我认为这不能关闭。但是,如果您按 Alt+F5,则测试源文件夹配置正确。共享存储此信息的.classpath 文件应该不会对旧Eclipse IDE 的用户造成伤害。如果.classpath 文件受版本控制,则该文件迟早必须更新。

标签: java eclipse maven eclipse-photon


【解决方案1】:

参见文章“Eclipse Project Photon - New and Noteworthy”的Test sources section:

...对于项目和库,有一个属性 仅对 测试来源。此设置也适用于类路径容器,并且 如果其中一个设置为 Yes,则此值将用于所有 包含库和项目。

您可以在 Java Build Path > Source 下的 {your project} > Properties 中打开或关闭该设置,方法是选择条目 Contains test sources 并点击切换按钮:

所以您已经在正确的屏幕上解决问题了;只需点击 Source 标签并将 Contains test sources 设置为 No。

【讨论】:

  • 是的,我注意到了这一点,我不想那样做。这将更改受版本控制的.classpath 文件。我不想更新其他团队的项目配置。
  • 好的。我误读了您的帖子,以为您只是在问如何关闭设置,但您真正想做的是完全禁用新功能,对吗?如果这无法完成,并且我不知道它是如何做到的,那么请检查在 Photon 下对项目配置所做的更改(无论如何,您可能应该花一些时间)。正如 howlger 建议的那样,这些更改可能是向后兼容的,因此您可以在版本控制中允许您的 Photon 更改。 (即,您将更新其他团队使用的项目配置,但从他们的角度来看,这些更新是无害的。)
  • 手动设置时,m2e Maven 插件将在重建时简单地恢复此选项 (Alt+F5)
【解决方案2】:

我认为您实际上是在使用 maven,并且测试依赖项被自动设置为“仅对测试源可见”作为 m2e 的“Maven 依赖项”类路径容器的一部分。

如果更新.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,请创建一个具有以下内容的用户,然后在Preferences > Maven > Users Settings 中的Eclipse 中将其选择为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>

【讨论】:

  • 好的。我现在只是简单地降级到 Eclipse Oxygen 本身。
  • 不起作用。 maven 插件只是忽略了某些项目/包中的 src/test/ 文件夹。每当执行“Maven”>“更新项目”时,它就会被设置回“否”。插件彻底坏了。唯一的选择是将整个 Eclipse 恢复为 Oxygen(= 新安装)。这些人甚至会测试他们的更新吗?
  • @Terran,我不确定你尝试了什么。旧的 m2e 版本对测试相关的设置一无所知,因此“Maven Dependencies”容器中的源文件夹和所有依赖项都被视为“main”-code,因此编译与 Oxygen 中的相同。跨度>
  • m2e 应该选择哪个文件夹是 src/main 以及哪个文件夹是 src/test。至少来自 pom.xml 中的 。您无法发布不再编译您的代码且无法修复它的主要 IDE 版本。
  • 请注意,当前问题来自一个一切正常的用户,但他不想更新 .classpath 文件。你似乎有一个问题,有些东西不起作用。 m2e使用maven自己的代码来查询pom,所以问题是为什么它不起作用。如果您需要帮助并且可以提供一个示例项目来说明什么不起作用,请在此处创建一个特定问题或更好地在 bugs.eclipse.org 提交错误并将其链接到此处。
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多