maven将依赖一起打进jar里(解压依赖和不解压依赖方式)

本文介绍如何使用maven-assembly-plugin插件进行项目打包,并详细解释了解压与不解压依赖的两种打包方式及其具体配置。

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

使用maven-assembly-plugin插件。

打包方式分两种,一种是把第三方jar包解压成class再加入进我们的jar包中,另一个则是不解压直接把jar包加入我们的jar中。

解压依赖的方式:

<build>

        <plugins>

            <plugin>

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

                <artifactId>maven-assembly-plugin</artifactId>

                <configuration>

                    <archive>

                        <manifest>

                            <!--可以不指定主类-->

                            <mainClass>tdt.tile.picker.Main</mainClass>

                        </manifest>

                    </archive>

               <!--  这个的意思是依据一个id为“jar-with-dependencies”的配置文件内容来执行打包

<descriptorRefs>

                        <descriptorRef>jar-with-dependencies</descriptorRef>

                    </descriptorRefs>-->

                    <descriptors>

<!--这里的意思是依据指定的配置文件进行打包-->

                        <descriptor>src/main/resources/assembly.xml</descriptor>

                    </descriptors>

                </configuration>

                <executions>

                    <execution>

                        <id>make-assembly</id>

                        <phase>package</phase>

                        <goals>

                            <goal>single</goal>

                        </goals>

                    </execution>

                </executions>

            </plugin>

        </plugins>

</build>

 

配置文件的内容:

<assembly>

    <id>with-dependence</id><!-- 配置文件的标识,同时生成的jar包名字会把这个文本包含进去 -->

    <formats>

        <format>jar</format><!-- 打包类型,此处为jar -->

    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <dependencySets>

        <dependencySet>

            <unpack>true</unpack><!-- 是否解压 -->

            <scope>runtime</scope>

        </dependencySet>

    </dependencySets>

    <fileSets>

        <fileSet>

            <directory>${project.build.outputDirectory}</directory>

            <outputDirectory>/</outputDirectory>

        </fileSet>

    </fileSets>

</assembly>

效果:

 

解压

解压

不解压依赖的方式:

Build的内容与上面一致,只是在配置文件里面把unpack改成false即可:

<assembly>

    <id>with-dependence</id><!-- 配置文件的标识,同时生成的jar包名字会把这个文本包含进去 -->

    <formats>

        <format>jar</format><!-- 打包类型,此处为jar -->

    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <dependencySets>

        <dependencySet>

            <unpack>false</unpack><!-- 是否解压 -->

            <scope>runtime</scope>

        </dependencySet>

    </dependencySets>

    <fileSets>

        <fileSet>

            <directory>${project.build.outputDirectory}</directory>

            <outputDirectory>/</outputDirectory>

        </fileSet>

    </fileSets>

</assembly>

效果:

 

不解压

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值