欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven3種打包方式中maven-assembly-plugin的使用詳解

 更新時(shí)間:2020年07月22日 14:42:52   作者:vow_  
這篇文章主要介紹了Maven3種打包方式中maven-assembly-plugin的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
  • maven-jar-plugin,默認(rèn)的打包插件,用來打普通的project JAR包;
  • maven-shade-plugin,用來打可執(zhí)行JAR包,也就是所謂的fat JAR包;
  • maven-assembly-plugin,支持自定義的打包結(jié)構(gòu),也可以定制依賴項(xiàng)等。

我們?nèi)粘J褂玫囊詍aven-assembly-plugin為最多,因?yàn)榇髷?shù)據(jù)項(xiàng)目中往往有很多shell腳本、SQL腳本、.properties及.xml配置項(xiàng)等,采用assembly插件可以讓輸出的結(jié)構(gòu)清晰而標(biāo)準(zhǔn)化。
要使用該插件,就在項(xiàng)目pom文件中加入以下內(nèi)容。

 <build>
 <plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>${maven-assembly-plugin.version}<version>
  <executions>
   <execution>
   <id>make-assembly</id>
   <!-- 綁定到package生命周期 -->
   <phase>package</phase>
   <goals>
    <!-- 只運(yùn)行一次 -->
    <goal>single</goal>
   </goals>
   </execution>
  </executions>
  <configuration>
   <!-- 配置描述符文件 -->
   <descriptor>src/main/assembly/assembly.xml</descriptor>
   <!-- 也可以使用Maven預(yù)配置的描述符
   <descriptorRefs>
   <descriptorRef>jar-with-dependencies</descriptorRef>
   </descriptorRefs> -->
  </configuration>
  </plugin>
 </plugins>
 </build>

assembly插件的打包方式是通過descriptor(描述符)來定義的。
Maven預(yù)先定義好的描述符有bin,src,project,jar-with-dependencies等。比較常用的是jar-with-dependencies,它是將所有外部依賴JAR都加入生成的JAR包中,比較傻瓜化。
但要真正達(dá)到自定義打包的效果,就需要自己寫描述符文件,格式為XML。下面是我們的項(xiàng)目中常用的一種配置。

<assembly>
 <id>assembly</id>
 
 <formats>
 <format>tar.gz</format>
 </formats>
 
 <includeBaseDirectory>true</includeBaseDirectory>
 
 <fileSets>
 <fileSet>
  <directory>src/main/bin</directory>
  <includes>
  <include>*.sh</include>
  </includes>
  <outputDirectory>bin</outputDirectory>
  <fileMode>0755</fileMode>
 </fileSet>
 <fileSet>
  <directory>src/main/conf</directory>
  <outputDirectory>conf</outputDirectory>
 </fileSet>
 <fileSet>
  <directory>src/main/sql</directory>
  <includes>
  <include>*.sql</include>
  </includes>
  <outputDirectory>sql</outputDirectory>
 </fileSet>
 <fileSet>
  <directory>target/classes/</directory>
  <includes>
  <include>*.properties</include>
  <include>*.xml</include>
  <include>*.txt</include>
  </includes>
  <outputDirectory>conf</outputDirectory>
 </fileSet>
 </fileSets>
 
 <files>
 <file>
  <source>target/${project.artifactId}-${project.version}.jar</source>
  <outputDirectory>.</outputDirectory>
 </file>
 </files>
 
 <dependencySets>
 <dependencySet>
  <unpack>false</unpack>
  <scope>runtime</scope>
  <outputDirectory>lib</outputDirectory>
 </dependencySet>
 </dependencySets>
</assembly>

id與formats

formats是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war。可以同時(shí)定義多個(gè)format。
id則是添加到打包文件名的標(biāo)識符,用來做后綴。
也就是說,如果按上面的配置,生成的文件就是artifactId−{artifactId}-artifactId−{version}-assembly.tar.gz。

fileSets/fileSet

用來設(shè)置一組文件在打包時(shí)的屬性。

directory:源目錄的路徑。
includes/excludes:設(shè)定包含或排除哪些文件,支持通配符。
fileMode:指定該目錄下的文件屬性,采用Unix八進(jìn)制描述法,默認(rèn)值是0644。
outputDirectory:生成目錄的路徑。

files/file
與fileSets大致相同,不過是指定單個(gè)文件,并且還可以通過destName屬性來設(shè)置與源文件不同的名稱。
dependencySets/dependencySet
用來設(shè)置工程依賴文件在打包時(shí)的屬性。也與fileSets大致相同,不過還有兩個(gè)特殊的配置:

unpack:布爾值,false表示將依賴以原來的JAR形式打包,true則表示將依賴解成*.class文件的目錄結(jié)構(gòu)打包。
scope:表示符合哪個(gè)作用范圍的依賴會被打包進(jìn)去。compile與provided都不用管,一般是寫runtime。

按照以上配置打包好后,將.tar.gz文件上傳到服務(wù)器,解壓之后就會得到bin、conf、lib等規(guī)范化的目錄結(jié)構(gòu),十分方便。

參考
http://www.dbjr.com.cn/article/144979.htm

到此這篇關(guān)于Maven3種打包方式中maven-assembly-plugin的使用的文章就介紹到這了,更多相關(guān)Maven打包方式maven-assembly-plugin的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot調(diào)用第三方接口的幾種方式小結(jié)

    SpringBoot調(diào)用第三方接口的幾種方式小結(jié)

    在項(xiàng)目中調(diào)用第三方接口時(shí),確實(shí)需要根據(jù)項(xiàng)目的技術(shù)棧、架構(gòu)規(guī)范以及具體的業(yè)務(wù)需求來選擇最適合的調(diào)用方式,下面我們就介紹幾種調(diào)用第三方接口的實(shí)現(xiàn)方式以及代碼示例,需要的朋友可以參考下
    2024-07-07
  • java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡介)

    java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡介)

    這篇文章主要介紹了java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡介),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • kibana中ES修改某個(gè)字段類型問題小結(jié)

    kibana中ES修改某個(gè)字段類型問題小結(jié)

    這篇文章主要介紹了kibana中ES修改某個(gè)字段類型問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • java中g(shù)et()方法和set()方法的作用淺析

    java中g(shù)et()方法和set()方法的作用淺析

    這篇文章主要給大家介紹了關(guān)于java中g(shù)et()方法和set()方法的作用,set是是對數(shù)據(jù)進(jìn)行設(shè)置,而get是對數(shù)據(jù)進(jìn)行獲取,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • springboot中一些比較常用的注解總結(jié)

    springboot中一些比較常用的注解總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著springboot中一些比較常用的注解展開,文中有非常詳細(xì)的總結(jié),需要的朋友可以參考下
    2021-06-06
  • Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例

    Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能,涉及java針對目錄與文件的遍歷、匹配、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Invalid?bound?statement?(not?found)出現(xiàn)原因以及解決辦法

    Invalid?bound?statement?(not?found)出現(xiàn)原因以及解決辦法

    這篇文章主要給大家介紹了關(guān)于Invalid?bound?statement?(not?found)出現(xiàn)原因以及解決辦法的相關(guān)資料,文中給出了詳細(xì)的解決方法,需要的朋友可以參考下
    2023-07-07
  • springboot亂碼問題解決方案

    springboot亂碼問題解決方案

    這篇文章主要介紹了springboot亂碼問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Java 模擬銀行自助終端系統(tǒng)

    Java 模擬銀行自助終端系統(tǒng)

    本系統(tǒng)模擬銀行用戶使用ATM機(jī)開戶、查詢、存款、取款功能,要求使用java語言編程實(shí)現(xiàn)。這篇文章主要介紹了Java 模擬銀行自助終端系統(tǒng)的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • java獲取服務(wù)器基本信息的方法

    java獲取服務(wù)器基本信息的方法

    這篇文章主要介紹了java獲取服務(wù)器基本信息的方法,涉及java獲取系統(tǒng)CPU、內(nèi)存及操作系統(tǒng)等相關(guān)信息的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07

最新評論