Maven 项目打包可执行 JAR 文件(2023/07/11)

文章介绍了如何配置Maven的pom.xml,以便将第三方依赖一起打包进JAR文件,并设置主类作为入口,使得打包后的JAR可以直接运行。主要步骤包括在pom.xml中配置maven-assembly-plugin,指定mainClass和finalName,然后执行mvncleanpackage命令进行打包。
摘要由CSDN通过智能技术生成

Maven 项目打包可执行 JAR 文件

默认情况下,Maven 项目打包后只包含代码,不包含第三方依赖,所以无法直接运行,本文将介绍如何一起打包第三方依赖以及指定入口方法。

1. pom.xml 配置

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <mainClass>com.example.Main</mainClass>
    <assemblyFinalName>example</assemblyFinalName>
</properties>

<build>
    <plugins>
        <!-- Maven Assembly Plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>${mainClass}</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <finalName>${assemblyFinalName}</finalName> <!-- 使用属性引用指定打包依赖后的JAR包名称 -->
                <appendAssemblyId>false</appendAssemblyId> <!-- 禁止添加描述符 ID 的后缀 -->
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2. 配置介绍

  • build.plugins.plugin.configuration.archive.manifest.mainClass: 指定 JAR 文件的入口方法;
  • build.plugins.plugin.configuration.finalName: 指定打包后的 JAR 文件名称;
  • build.plugins.plugin.configuration.appendAssemblyId: 指定打包后的 JAR 文件名称不携带 -jar-with-dependencies 后缀;

3. 打包

$ mvn clean package

参考文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值