ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

使用指定jdk打包maven项目

使用指定jdk打包maven项目

要使用指定的 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 版本进行项目打包。 

 

返回列表