有没有办法阻止m2e修改eclipse .classpath文件?

问题描述 投票:2回答:3

我正在将我们的一些项目转换为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>

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

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

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

java eclipse maven m2e
3个回答
3
投票

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

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


0
投票

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

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


0
投票

您需要配置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编译器以使用具有正确版本的版本。

© www.soinside.com 2019 - 2024. All rights reserved.