确定 maven 构建中使用的实际 java 版本
Determine the actual java version used in maven build
的补充,如何确定 mvn compile
中使用的实际 java 版本 ?
我正在编译FasterXML/jackson-databind如下,但无法确定java版本:
$ git clone https://github.com/FasterXML/jackson-databind.git
$ cd jackson-databind
$ mvn compile
$ javap -verbose ./target/classes/com/fasterxml/jackson/databind/PropertyNamingStrategy.class | grep "major"
major version: 52
所以根据this post,java版本是1.8
。
但是当我 grep pom.xml
时,我没有看到:
$ grep -wn "source" pom.xml
245: <id>add-test-source</id>
248: <goal>add-test-source</goal>
252: <source>src/test-jdk14/java</source>
265: <source>14</source>
我只看到java14(?)我错过了什么?
maven 使用的版本可以在 POM 文件中找到,如:
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
或者
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
它在新的发布标签中,而不是源代码或编译 -
你可以使用maven用户引用它属性
NB Release 覆盖源和目标值 -
例如源 = 1.8,目标 = 1.8,发布 = 14,
在 JDK 14
中编译和发布
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<release>${maven.compiler.source}</release>
父 POM 是 jackson-base
,它确实设置了 java 版本:https://github.com/FasterXML/jackson-bom/blob/e60567a0e778f749d9e39e2c245486a44fbc52f9/base/pom.xml
<javac.src.version>1.8</javac.src.version>
<javac.target.version>1.8</javac.target.version>
<maven.compiler.source>${javac.src.version}</maven.compiler.source>
<maven.compiler.target>${javac.target.version}</maven.compiler.target>
您可以使用 mvn help:effective-pom
检查包含所有 parents/dependencies/plugins/properties/etc 的完全评估的 POM
mvn compile
中使用的实际 java 版本 ?
我正在编译FasterXML/jackson-databind如下,但无法确定java版本:
$ git clone https://github.com/FasterXML/jackson-databind.git
$ cd jackson-databind
$ mvn compile
$ javap -verbose ./target/classes/com/fasterxml/jackson/databind/PropertyNamingStrategy.class | grep "major"
major version: 52
所以根据this post,java版本是1.8
。
但是当我 grep pom.xml
时,我没有看到:
$ grep -wn "source" pom.xml
245: <id>add-test-source</id>
248: <goal>add-test-source</goal>
252: <source>src/test-jdk14/java</source>
265: <source>14</source>
我只看到java14(?)我错过了什么?
maven 使用的版本可以在 POM 文件中找到,如:
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
或者
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
它在新的发布标签中,而不是源代码或编译 -
你可以使用maven用户引用它属性
NB Release 覆盖源和目标值 - 例如源 = 1.8,目标 = 1.8,发布 = 14, 在 JDK 14
中编译和发布 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<release>${maven.compiler.source}</release>
父 POM 是 jackson-base
,它确实设置了 java 版本:https://github.com/FasterXML/jackson-bom/blob/e60567a0e778f749d9e39e2c245486a44fbc52f9/base/pom.xml
<javac.src.version>1.8</javac.src.version>
<javac.target.version>1.8</javac.target.version>
<maven.compiler.source>${javac.src.version}</maven.compiler.source>
<maven.compiler.target>${javac.target.version}</maven.compiler.target>
您可以使用 mvn help:effective-pom