Maven 的默认合规级别是 1.5,每次我在 Eclipse 中更新一个 Maven 项目时,它都会将合规级别从 1.6 设置回 1.5,这对我来说真的很烦人。
我知道我可以在 POM 文件中将目标设置为 1.6,但问题是我不能在父 POM 中设置它并期望子代继承它。所以我必须为每一个 Maven 模块做这件事。如何在我的 Maven 项目或整个 Eclipse 中设置它一次“终生”而不修改每个 Maven 模块!?
我知道我可以在 pom 文件中将目标设置为 1.6,但问题是我不能在父 pom 中设置它并期望孩子继承它。
在父 pom 中设置<source>
and版本确实有效。<target>
例如,在我的父母 pom 中,我有:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
如果您遇到问题,您可能需要检查:
source
和target
值;mvn install
在父母身上跑过;和mvn help:effective-pom
在子项目上显示预期的源/目标值。修改 pom 后,您可能需要选择两个项目并使用Maven->Update Project。
另一种方法(如果你还没有定义编译器插件)是在你的pom文件中设置这些属性:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
详细信息:https ://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html
这对我有用..
<build>
<finalName>ProjectName</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
转到项目的 pom.xml 并在下面的标签之间插入。然后 eclipse 插件(如 m2eclipse)应该重建工作区。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
注意:这是项目级别的,因为只有项目的 pom.xml 受到影响。