Java 有没有办法防止m2e修改eclipse.classpath文件?
我正在将一些项目转换为Maven项目,但m2e将我的.classpath JRE条目从:Java 有没有办法防止m2e修改eclipse.classpath文件?,java,eclipse,maven,m2e,Java,Eclipse,Maven,M2e,我正在将一些项目转换为Maven项目,但m2e将我的.classpath JRE条目从: <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpat
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
致:
这会导致一些错误,如:
说明资源路径位置类型访问限制:类型
由于对的限制,无法访问WindowsPopupMenuSeparatorUI
必需的库C:\程序
Files\Java\jdk1.6.0\u 20\jre\lib\rt.jar DottedJPopupMenuSeparator.Java/acommons/src/com/ks/acommons/gui/lookandfeel行
10 Java问题
有没有办法让m2e不生成.classpath文件,或者强制它使用工作区默认的JDK?在我看来,Maven在这方面帮了你的忙。它强制Eclipse使用严格的Java1.6环境,并阻止您使用不属于标准发行版的库
通常,此错误消息暗示您应该声明一个新的Maven依赖项,而不是依赖(例如,
JRE/lib/ext
中存在的JAR文件。这目前是不可能的,但如果已修复,则可能会发生
截至今天(m2e 1.5.0.20140606-0033),您只能将m2e配置为保留额外的类路径条目,但它将始终删除它自动生成的条目。这包括JRE的类路径条目,因此无法手动设置该条目并使其在m2e项目更新后仍然有效。您需要配置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>
org.apache.maven.plugins
maven编译器插件
1.8
1.8
这将告诉Maven您想要哪个JRE版本。现在,您可以在Eclipse首选项中配置匹配的JRE版本,m2e将配置Eclipse编译器以使用具有正确版本的编译器。我在Eclipse中将错误更改为警告,同时与有问题代码的所有者一起工作。另请参阅:
<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>