通过idea打包java Maven项目 架包与全包
有勇气的牛排
470
Java
2022-12-22 15:06:09
哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮
有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。
文章目录
1 仅架包
架包定义:指仅将代码打包到jar中,在运行的平台必须保证依赖。
方法:maven —> Lifecyle —> Clean —> Package

2 架包与全包(推荐)
全包定义:将maven项目中的依赖于代码都打为一个包。
方法:maven —> Plugins —> assembly —>assembly:assembly
项目配置
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>azkaban_cs</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
新建主目录文件:assembly.xml
<assembly xmlns:xsi="" xmlns="" xsi:schemaLocation=" ">
<id>${project.version}</id>
<formats>
<format>dir</format>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<baseDirectory>${build.directory}</baseDirectory>
<fileSets>
<fileSet>
<directory>conf/</directory>
<outputDirectory>${project.artifactId}/conf</outputDirectory>
</fileSet>
<fileSet>
<directory>db/</directory>
<outputDirectory>${project.artifactId}/db</outputDirectory>
</fileSet>
<fileSet>
<directory>${build.directory}</directory>
<includes>
<include>*.jar</include>
</includes>
<excludes>
<exclude>*sources.jar</exclude>
</excludes>
<outputDirectory>${project.artifactId}/lib</outputDirectory>
</fileSet>
<fileSet>
<directory>bin/</directory>
<outputDirectory>${project.artifactId}/bin</outputDirectory>
<fileMode>754</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
</fileSets>
</assembly>
开始打包

<p><font face="楷体,华文行楷,隶书,黑体" color="red" size="4"><strong>哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮</strong></font></p>
<p><font face="楷体,华文行楷,隶书,黑体" color="blue" size="4"><strong>有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。</strong></font></p>
<p><h3>文章目录</h3><ul><ul><li><a href="#1__6">1 仅架包</a></li><li><a href="#2__13">2 架包与全包(推荐)</a></li></ul></ul></p>
<h2><a id="1__6"></a>1 仅架包</h2>
<p>架包定义:指仅将代码打包到jar中,在运行的平台必须保证依赖。<br />
方法:maven —> Lifecyle —> Clean —> Package</p>
<p><img src="https://static.couragesteak.com/article/86a4aed68df6792fa81d9806225d5e14.png" alt="image.png" /></p>
<h2><a id="2__13"></a>2 架包与全包(推荐)</h2>
<p>全包定义:将maven项目中的依赖于代码都打为一个包。<br />
方法:maven —> Plugins —> assembly —>assembly:assembly</p>
<p>项目配置</p>
<p>pom.xml</p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-meta"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="hljs-tag"><<span class="hljs-name">project</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">"http://maven.apache.org/POM/4.0.0"</span>
<span class="hljs-attr">xmlns:xsi</span>=<span class="hljs-string">"http://www.w3.org/2001/XMLSchema-instance"</span>
<span class="hljs-attr">xsi:schemaLocation</span>=<span class="hljs-string">"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">modelVersion</span>></span>4.0.0<span class="hljs-tag"></<span class="hljs-name">modelVersion</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>groupId<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>azkaban_cs<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.0-SNAPSHOT<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"><<span class="hljs-name">properties</span>></span>
<span class="hljs-tag"><<span class="hljs-name">project.build.sourceEncoding</span>></span>UTF-8<span class="hljs-tag"></<span class="hljs-name">project.build.sourceEncoding</span>></span>
<span class="hljs-tag"><<span class="hljs-name">project.reporting.outputEncoding</span>></span>UTF-8<span class="hljs-tag"></<span class="hljs-name">project.reporting.outputEncoding</span>></span>
<span class="hljs-tag"><<span class="hljs-name">java.version</span>></span>1.8<span class="hljs-tag"></<span class="hljs-name">java.version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">properties</span>></span>
<span class="hljs-comment"><!-- 引入打包插件 --></span>
<span class="hljs-tag"><<span class="hljs-name">build</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugin</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.apache.maven.plugins<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>maven-assembly-plugin<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-tag"><<span class="hljs-name">appendAssemblyId</span>></span>false<span class="hljs-tag"></<span class="hljs-name">appendAssemblyId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">descriptors</span>></span>
<span class="hljs-tag"><<span class="hljs-name">descriptor</span>></span>assembly.xml<span class="hljs-tag"></<span class="hljs-name">descriptor</span>></span>
<span class="hljs-tag"></<span class="hljs-name">descriptors</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
<span class="hljs-tag"><<span class="hljs-name">executions</span>></span>
<span class="hljs-tag"><<span class="hljs-name">execution</span>></span>
<span class="hljs-tag"><<span class="hljs-name">id</span>></span>make-assembly<span class="hljs-tag"></<span class="hljs-name">id</span>></span>
<span class="hljs-tag"><<span class="hljs-name">phase</span>></span>package<span class="hljs-tag"></<span class="hljs-name">phase</span>></span>
<span class="hljs-tag"><<span class="hljs-name">goals</span>></span>
<span class="hljs-tag"><<span class="hljs-name">goal</span>></span>single<span class="hljs-tag"></<span class="hljs-name">goal</span>></span>
<span class="hljs-tag"></<span class="hljs-name">goals</span>></span>
<span class="hljs-tag"></<span class="hljs-name">execution</span>></span>
<span class="hljs-tag"></<span class="hljs-name">executions</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugin</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"></<span class="hljs-name">build</span>></span>
<span class="hljs-comment"><!-- <dependencies>--></span>
<span class="hljs-comment"><!-- &lt;!&ndash;Lombok &ndash;&gt;--></span>
<span class="hljs-comment"><!-- <dependency>--></span>
<span class="hljs-comment"><!-- <groupId>org.projectlombok</groupId>--></span>
<span class="hljs-comment"><!-- <artifactId>lombok</artifactId>--></span>
<span class="hljs-comment"><!-- </dependency>--></span>
<span class="hljs-comment"><!-- </dependencies>--></span>
<span class="hljs-tag"></<span class="hljs-name">project</span>></span>
</code></div></pre>
<p>新建主目录文件:assembly.xml</p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-tag"><<span class="hljs-name">assembly</span> <span class="hljs-attr">xmlns:xsi</span>=<span class="hljs-string">""</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">""</span> <span class="hljs-attr">xsi:schemaLocation</span>=<span class="hljs-string">" "</span>></span>
<span class="hljs-tag"><<span class="hljs-name">id</span>></span>${project.version}<span class="hljs-tag"></<span class="hljs-name">id</span>></span>
<span class="hljs-tag"><<span class="hljs-name">formats</span>></span>
<span class="hljs-tag"><<span class="hljs-name">format</span>></span>dir<span class="hljs-tag"></<span class="hljs-name">format</span>></span>
<span class="hljs-tag"><<span class="hljs-name">format</span>></span>tar.gz<span class="hljs-tag"></<span class="hljs-name">format</span>></span>
<span class="hljs-tag"></<span class="hljs-name">formats</span>></span>
<span class="hljs-tag"><<span class="hljs-name">includeBaseDirectory</span>></span>false<span class="hljs-tag"></<span class="hljs-name">includeBaseDirectory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">baseDirectory</span>></span>${build.directory}<span class="hljs-tag"></<span class="hljs-name">baseDirectory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileSets</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">directory</span>></span>conf/<span class="hljs-tag"></<span class="hljs-name">directory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">outputDirectory</span>></span>${project.artifactId}/conf<span class="hljs-tag"></<span class="hljs-name">outputDirectory</span>></span>
<span class="hljs-tag"></<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">directory</span>></span>db/<span class="hljs-tag"></<span class="hljs-name">directory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">outputDirectory</span>></span>${project.artifactId}/db<span class="hljs-tag"></<span class="hljs-name">outputDirectory</span>></span>
<span class="hljs-tag"></<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">directory</span>></span>${build.directory}<span class="hljs-tag"></<span class="hljs-name">directory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">includes</span>></span>
<span class="hljs-tag"><<span class="hljs-name">include</span>></span>*.jar<span class="hljs-tag"></<span class="hljs-name">include</span>></span>
<span class="hljs-tag"></<span class="hljs-name">includes</span>></span>
<span class="hljs-tag"><<span class="hljs-name">excludes</span>></span>
<span class="hljs-tag"><<span class="hljs-name">exclude</span>></span>*sources.jar<span class="hljs-tag"></<span class="hljs-name">exclude</span>></span>
<span class="hljs-tag"></<span class="hljs-name">excludes</span>></span>
<span class="hljs-tag"><<span class="hljs-name">outputDirectory</span>></span>${project.artifactId}/lib<span class="hljs-tag"></<span class="hljs-name">outputDirectory</span>></span>
<span class="hljs-tag"></<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"><<span class="hljs-name">directory</span>></span>bin/<span class="hljs-tag"></<span class="hljs-name">directory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">outputDirectory</span>></span>${project.artifactId}/bin<span class="hljs-tag"></<span class="hljs-name">outputDirectory</span>></span>
<span class="hljs-tag"><<span class="hljs-name">fileMode</span>></span>754<span class="hljs-tag"></<span class="hljs-name">fileMode</span>></span>
<span class="hljs-tag"><<span class="hljs-name">lineEnding</span>></span>unix<span class="hljs-tag"></<span class="hljs-name">lineEnding</span>></span>
<span class="hljs-tag"></<span class="hljs-name">fileSet</span>></span>
<span class="hljs-tag"></<span class="hljs-name">fileSets</span>></span>
<span class="hljs-tag"></<span class="hljs-name">assembly</span>></span>
</code></div></pre>
<p>开始打包</p>
<p><img src="https://static.couragesteak.com/article/9e8c1ad15ce29bb5a7eaffcae0224037.png" alt="image.png" /></p>
留言