返回
Maven构建可执行JAR的指南:分发和运行一体
java
2024-03-31 07:10:07
Maven 构建可执行/可运行 JAR 的指南
引言
可执行 JAR 是将应用程序打包成单个文件的绝佳方式,便于分发和运行。Maven 是一个强大的构建工具,可以让你轻松管理依赖项并构建可执行 JAR。本文将逐步指导你完成使用 Maven 创建可执行/可运行 JAR 的过程。
构建可执行 JAR
- 配置 POM 文件
在项目 pom.xml 文件中,添加 Maven Assembly 插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>你的主类名</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
- 指定主类
在 <mainClass>
元素中,替换为你项目的入口点(主类)的完全限定名称。
- 运行 Maven 命令
使用以下命令在命令行中构建可执行 JAR:
mvn package
合并依赖项
默认情况下,Maven 不会将依赖项 JAR 包含在输出 JAR 中。要合并依赖项,你需要使用 Maven Shade 插件:
- 添加 Shade 插件
在 pom.xml 文件中,添加以下插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>shade-dependencies</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
</transformers>
</configuration>
</execution>
</executions>
</plugin>
- 配置 JAR-with-Dependencies 符
在 pom.xml 文件的 <assembly>
部分,添加以下配置:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
- 运行 Maven 命令
再次运行 mvn package
命令。
现在,可执行 JAR 将包含所有必需的依赖项。
结论
使用 Maven 和 Maven Shade 插件,你可以在 JAR 中轻松地创建包含所有必需依赖项的可执行/可运行 JAR。这简化了项目的打包和分发。
常见问题解答
- 如何设置 JAR 的版本号?
在 pom.xml 文件中使用 <version>
元素设置 JAR 的版本号。
- 如何调试可执行 JAR?
可以使用 java -jar 命令调试可执行 JAR,例如:
java -jar my-project.jar --debug
- 如何将资源文件包含在可执行 JAR 中?
在 pom.xml 文件中使用 <resources>
元素将资源文件包含在可执行 JAR 中。
- 如何自定义可执行 JAR 的名称?
在 pom.xml 文件中使用 <finalName>
元素自定义可执行 JAR 的名称。
- 如何排除特定的依赖项?
在 pom.xml 文件的 <dependencyManagement>
部分使用 <exclusion>
元素排除特定的依赖项。