maven將依賴一起打進jar裏(解壓依賴和不解壓依賴方式)

使用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>

效果:

 

不解壓

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章