maven-assembly-plugin打包插件配置

本文介绍如何使用Maven的assembly插件来配置并打包一个包含所有依赖的fatjar(uber-jar),适用于那些需要将所有依赖项都打包进单一jar文件的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven打包插件的配置

以下代码包含打普通jar包和fat jar(uber jar)包:

    <build>

        <finalName>最终生成的jar包名字</finalName>
        <!-- <plugins> -->
        <!-- <plugin> -->
        <!-- <groupId>org.apache.maven.plugins</groupId> -->
        <!-- <artifactId>maven-dependency-plugin</artifactId> -->
        <!-- <version>3.0.0</version> -->
        <!-- <executions> -->
        <!-- <execution> -->
        <!-- <id>copy-dependencies</id> -->
        <!-- <phase>prepare-package</phase> -->
        <!-- <goals> -->
        <!-- <goal>copy-dependencies</goal> -->
        <!-- </goals> -->
        <!-- <configuration> -->
        <!-- <outputDirectory>${project.build.directory}/lib</outputDirectory> -->
        <!-- <overWriteReleases>false</overWriteReleases> -->
        <!-- <overWriteSnapshots>false</overWriteSnapshots> -->
        <!-- <overWriteIfNewer>true</overWriteIfNewer> -->
        <!-- </configuration> -->
        <!-- </execution> -->
        <!-- </executions> -->
        <!-- </plugin> -->
        <!-- <plugin> -->
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-dependency-plugin -->
        <!-- <groupId>org.apache.maven.plugins</groupId> -->
        <!-- <artifactId>maven-dependency-plugin</artifactId> -->
        <!-- <version>3.0.1</version> -->
        <!-- <configuration> -->
        <!-- <archive> -->
        <!-- <manifest> -->
        <!-- <addClasspath>true</addClasspath> -->
        <!-- <classpathPrefix>lib/</classpathPrefix> -->
        <!-- <mainClass>com.yourcompay.Demo</mainClass> -->
        <!-- </manifest> -->
        <!-- </archive> -->
        <!-- </configuration> -->
        <!-- </plugin> -->
        <!-- </plugins> -->

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <!-- 去掉包名后缀 -->
                    <appendAssemblyId>false</appendAssemblyId>
                    <archive>
                        <manifest>
                            <mainClass>com.test.Hello</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>
        </plugins>

    </build>

参考链接:如何打一个FatJar(uber-jar)

### 如何在 `pom.xml` 中配置 `maven-assembly-plugin` 插件进行项目打包 为了使 Maven 使用 `maven-assembly-plugin` 进行项目的打包操作,需按照如下方式修改 `pom.xml` 文件: #### 1. 定义属性区段 定义一些全局使用的变量可以简化后续的配置工作。 ```xml <properties> <!-- 指定Java版本 --> <java.version>1.8</java.version> </properties> ``` #### 2. 增加构建部分中的插件声明 下面展示了如何向 `<build>` 节点下的 `<plugins>` 列表里加入 `maven-assembly-plugin` 的具体实例化描述。这里指定了该插件的目标版本以及执行阶段,并通过引入外部装配描述符来定制打包行为。 ```xml <build> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.5.1_2</version>[^2] <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.MainApp</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> ... </build> ``` 上述代码片段中设置了 `maven-assembly-plugin` 来创建包含所有依赖项在内的 JAR 文件(`jar-with-dependencies`),并设定了启动类为 `com.example.MainApp`[^2]。 #### 3. 执行命令完成打包过程 当完成了以上设置之后,在命令行工具下进入工程根目录运行以下指令即可触发打包动作: ```bash mvn clean package ``` 这将会清理旧版编译产物再重新编译整个工程项目,并最终依据所设定好的规则生成所需的可分发制品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值