zfreebird

朝闻道 夕死可矣

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

要使用指定的 JDK 版本打包 Maven 项目,需要确保 Maven 使用目标 JDK 进行编译、测试和打包。以下是具体实现方法:

方法一:通过 Maven 配置文件指定(推荐)

在项目的 pom.xml 中配置 maven-compiler-plugin,强制指定 JDK 版本:

    <build>

        <plugins>

            <!-- 配置编译器插件指定JDK版本 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>3.8.1</version> <!-- 使用最新稳定版本 -->

                <configuration>

                    <!-- 源代码兼容性版本 -->

                    <source>1.8</source>

                    <!-- 目标字节码兼容性版本 -->

                    <target>1.8</target>

                    <!-- 指定JDK工具路径(可选,自动检测不到时配置) -->

                    <executable>/usr/lib/jvm/java-1.8.0-openjdk/bin/javac</executable>

                    <fork>true</fork> <!-- 必须设置为true才能使用指定的executable -->

                    <!-- 编码设置 -->

                    <encoding>UTF-8</encoding>

                </configuration>

            </plugin>

        </plugins>

    </build>

方法二:通过命令行参数指定

打包时通过 -D 参数临时指定 JDK 版本,无需修改 pom.xml 
# 使用指定JDK版本编译打包
mvn clean package -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
# 如果需要指定JDK安装路径
mvn clean package -Dmaven.compiler.executable=/usr/lib/jvm/java-1.8.0-openjdk/bin/javac 

方法三:配置 Maven 全局设置

修改 Maven 全局配置文件 settings.xml
(通常位于 ~/.m2/settings.xml 或 Maven安装目录/conf/settings.xml),添加如下配置:
<profiles>
    <profile>
        <id>jdk-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>
    </profile>
</profiles> 

验证配置是否生效

打包后可以通过以下命令检查生成的 class 文件版本: 
# 查看class文件的JDK版本
javap -verbose target/classes/你的类名.class | grep "major version"
  • JDK 1.8 对应的 major version 是 52
  • JDK 11 对应的 major version 是 55

注意事项

  1. 确保指定的 JDK 已在系统中安装并可访问
  2. executable 路径需要替换为实际的 javac 路径(Windows 系统通常为 C:\Program Files\Java\jdk1.8.0_xxx\bin\javac.exe
  3. 如果项目依赖其他库,需确保依赖库与指定的 JDK 版本兼容
通过以上方法,即可强制 Maven 使用指定的 JDK 版本进行项目打包。 

 

posted on 2025-09-18 09:11  zfreebird  阅读(457)  评论(0)    收藏  举报