【问题标题】:Is there any way to prevent m2e from modifying the eclipse .classpath file?有什么办法可以防止m2e修改eclipse的.classpath文件?
【发布时间】:2012-09-03 15:44:06
【问题描述】:

我正在将我们的一些项目转换为 Maven 项目,但 m2e 将我的 .classpath JRE 条目从:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

到:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

这会导致一些错误,例如:

描述资源路径位置类型访问限制:类型 由于限制,无法访问 WindowsPopupMenuSeparatorUI 所需库 C:\Program Files\Java\jdk1.6.0_20\jre\lib\rt.jar DottedJPopupMenuSeparator.java /acommons/src/com/ks/acommons/gui/lookandfeel 行 10 Java问题

有什么办法可以让 m2e 不生成 .classpath 文件,或者强制它使用工作区默认的 JDK?

【问题讨论】:

标签: java eclipse maven m2e


【解决方案1】:

在我看来,Maven 正在帮助您。它强制 Eclipse 使用严格的 Java 1.6 环境并阻止您使用不属于标准发行版的库。

通常,此错误消息暗示您应该声明一个新的 Maven 依赖项,而不是依赖于(例如)JRE/lib/ext 中存在的 JAR 文件。

【讨论】:

  • 我在 Eclipse 中暂时将错误更改为警告,同时与违规代码的所有者合作。
【解决方案2】:

目前这是不可能的,但如果m2e bug 405661 是固定的,则可能。

从今天开始(m2e 1.5.0.20140606-0033),您只能将 m2e 配置为保留额外的类路径条目,但它总是会破坏它自动生成的条目。这包括 JRE 的类路径条目,因此无法手动设置此条目并使其在 m2e 项目更新后继续存在。

【讨论】:

    【解决方案3】:

    您需要配置 Maven 以使用正确的 JRE。

    您正在做的是将 Eclipse 配置为使用某个 JRE,而现在您希望 Maven 使用相同的 JRE。这不起作用,因为 Maven 将使用 POM (pom.xml) 来确定要使用的 JRE。这是有道理的,因为 Maven 是一个在 Eclipse 之外运行的命令行工具。 m2e 只是将 Eclipse 配置为与命令行中的 Maven 类似。如您所见,这里是 Maven 控制的,而 Eclipse 不是!

    要使两者相互配合,您需要像这样配置 Maven 编译器插件:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source> <!-- JRE version that you need -->
                    <target>1.8</target>
                </configuration>
            </plugin>
    

    这将告诉 Maven 你想要哪个 JRE 版本。现在您可以在 Eclipse 首选项中配置匹配的 JRE 版本,m2e 将配置 Eclipse 编译器以使用具有正确版本的编译器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 2014-01-19
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多