重写父pom中指定的java版本的不同方法
我正在使用一个父pom,它将java版本设置为1.5。在我的具体项目中,我使用了1.6,因此每次进行Maven更新时,我都会在eclipse中更改编译器版本 为了寻找解决方案,我找到了一些涉及覆盖子pom中父pom行为的解决方案 我的问题是它们之间是否有任何区别,如果有,我应该使用哪种选择。我发现的选项(可能还有更多)有:重写父pom中指定的java版本的不同方法,java,maven,pom.xml,Java,Maven,Pom.xml,我正在使用一个父pom,它将java版本设置为1.5。在我的具体项目中,我使用了1.6,因此每次进行Maven更新时,我都会在eclipse中更改编译器版本 为了寻找解决方案,我找到了一些涉及覆盖子pom中父pom行为的解决方案 我的问题是它们之间是否有任何区别,如果有,我应该使用哪种选择。我发现的选项(可能还有更多)有: 在属性标签中:1.6 在属性标签中:1.6 在配置标记中:${jdk.version} 我对Maven很陌生。提前感谢。属性只是属性,除非您在某个地方使用它们,否则它们没
- 在属性标签中:
1.6
- 在属性标签中:
1.6
- 在配置标记中:
${jdk.version}
我对Maven很陌生。提前感谢。属性只是属性,除非您在某个地方使用它们,否则它们没有多大意义。
重要的是在
maven编译器插件
配置中设置版本:
<properties>
<jdk.version>1.6</jdk.version>
</properties>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
1.6
org.apache.maven.plugins
maven编译器插件
3.3
${jdk.version}
${jdk.version}
您一定要选择:
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
1.6
1.6
它是用于设置Java版本的事实上的标准Maven属性,它不仅被
Maven编译器插件使用,也被其他标准Maven插件(包括报告插件)使用,因此它在全球范围内应用您的Java版本,不仅用于编译类。如果您的父pom使用1.7JDK,而您希望子pom使用1.6Java版本combine.self=“override”使用以下代码非常重要:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration combine.self="override">
<verbose>true</verbose>
<fork>true</fork>
<executable>/usr/lib/jvm/java-1.6.0-openjdk-amd64/bin/javac</executable>
<compilerVersion>1.6</compilerVersion>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
org.apache.maven.plugins
maven编译器插件
3.1
真的
真的
/usr/lib/jvm/java-1.6.0-openjdk-amd64/bin/javac
1.6
完全正确。你给你的财产取什么名字并不重要。它们就像变量。一旦声明了表示JDK版本的属性,例如myJdkVersionPropertyName
,就可以在maven编译器插件的配置标记中以相同的名称引用它,例如${myJdkVersionPropertyName}
。这个标签的源
和目标
元素实际上是设置JDK版本的元素。你们都是对的。我不理解“财产”的含义。我的父pom定义为1.5,因此覆盖此属性上的值就成功了。谢谢我不熟悉Maven,但我参与了Maven管理的一个项目。这些内容将放在哪里?文件/文件夹位置的名称,我在pom.xml中没有看到。这将放在pom.xml文件中。也许你的项目是按照Michal Kalinowski下面的答案设置的?否则它将返回默认的java版本,即1.5。您应该问的问题是:天哪。。。在我的屏幕上,gom读起来很像色情,我打算把它标记出来,所以。。。