微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

确定 maven 构建中使用的实际 java 版本

如何解决确定 maven 构建中使用的实际 java 版本

this question的补充,如何确定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>

我只看到 java 14 (?) 我错过了什么?

解决方法

它在新的发布标签中,而不是源代码或编译-

您可以使用 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

检查具有所有父项/依赖项/插件/属性/等的完全评估的 POM ,

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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。