您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么使用MAVEN打JAR包的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇怎么使用MAVEN打JAR包文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
首先在pom.xml里面添加:
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.qunar.piao.data.integration.Boot</mainClass> </manifest> <!-- 需要執(zhí)行的main --> </archive> </configuration> </plugin> </plugins> </build>
然后執(zhí)行:mvn assembly:assembly
最后執(zhí)行:java -jar target/ticket-data-integration-0.0.1-SNAPSHOT-jar-with-dependencies.jar
兩個(gè)類,Boot類:
package com.qunar.check.integration; public class Boot { public static void main(String[] args){ System.out.println("test xingxing"); } }
Boot2類:
package com.qunar.check.integration; public class Boot2 { public static void main(String[] args){ System.out.println("test liqiu"); } }
那么執(zhí)行:
$ java -classpath target/check-jar-with-dependencies.jar com.qunar.check.integration.Boot2 test liqiu $ java -classpath target/check-jar-with-dependencies.jar com.qunar.check.integration.Boot test xingxing
兩個(gè)main函數(shù)都可以執(zhí)行
要使用assembly 進(jìn)項(xiàng)編譯打包, 首先主要在pom 中的build中添加插件信息, 具體如圖下所示:
<build> <finalName>${project.artifactId}</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> <resource> <directory>${profile.dir}</directory> <filtering>true</filtering> </resource> </resources> <plugins> <!-- compiler插件參數(shù)設(shè)置,指定編碼 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>utf-8</encoding> </configuration> </plugin> <!-- 這個(gè)插件是關(guān)鍵 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- 這個(gè)是assembly 所在位置 --> <descriptor>src/main/assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
創(chuàng)建assembly文件夾和assembly.xml文件, 這個(gè)樣子創(chuàng)建主要是規(guī)范。
在pom 中已經(jīng)介紹assembly.xml 位置。
<!-- 這個(gè)是assembly 所在位置 --> <descriptor>src/main/assembly/assembly.xml</descriptor>
創(chuàng)建assembly.xml 文件后添加如下內(nèi)容:
<assembly> <formats> <!--支持 zip,tar,tar.gz,tar.bz2,jar,dir,war 等 --> <format>tar.gz</format> <format>zip</format> <format>dir</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>src/main/resources</directory> <outputDirectory>conf</outputDirectory> <fileMode>0644</fileMode> </fileSet> <fileSet> <directory>${profile.dir}</directory> <outputDirectory>conf</outputDirectory> <!-- 表示的是包含下面格式的資源文件 --> <includes> <include>*.xml</include> <include>*.properties</include> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <fileMode>0644</fileMode> </fileSet> <fileSet> <directory>src/main/assembly/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> </dependencySet> </dependencySets> </assembly>
fileMode 官方解釋:
Similar to a UNIX permission, sets the file mode of the files included. THIS IS AN OCTAL VALUE. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the value 0644 translates to User read-write, Group and Other
上述的三個(gè)fileSet 分別是將resource 下的資源打包到config 目錄下, 將assembly下的bin 啟動(dòng)相關(guān)腳本打包到bin 目錄下, 將maven項(xiàng)目依賴的所有jar 包, 打包到lib 中。
具體結(jié)構(gòu)如下圖所示:
關(guān)于“怎么使用MAVEN打JAR包”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“怎么使用MAVEN打JAR包”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。