最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

我們日常使用的以maven-assembly-plugin為最多,因為大數(shù)據(jù)項目中往往有很多shell腳本、SQL腳本、.properties及.xml配置項等,采用assembly插件可以讓輸出的結構清晰而標準化。
要使用該插件,就在項目pom文件中加入以下內容。

 <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>
    <!-- 只運行一次 -->
    <goal>single</goal>
   </goals>
   </execution>
  </executions>
  <configuration>
   <!-- 配置描述符文件 -->
   <descriptor>src/main/assembly/assembly.xml</descriptor>
   <!-- 也可以使用Maven預配置的描述符
   <descriptorRefs>
   <descriptorRef>jar-with-dependencies</descriptorRef>
   </descriptorRefs> -->
  </configuration>
  </plugin>
 </plugins>
 </build>

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

<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??梢酝瑫r定義多個format。
id則是添加到打包文件名的標識符,用來做后綴。
也就是說,如果按上面的配置,生成的文件就是artifactId−{artifactId}-artifactId−{version}-assembly.tar.gz。

fileSets/fileSet

用來設置一組文件在打包時的屬性。

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

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

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

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

參考
http://m.fzitv.net/article/144979.htm

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

相關文章

  • Java?代碼本地設置Hadoop用戶名密碼的方法

    Java?代碼本地設置Hadoop用戶名密碼的方法

    在Hadoop環(huán)境中,通常使用Kerberos進行身份驗證,這篇文章主要介紹了Java?代碼本地設置Hadoop用戶名密碼的方法,需要的朋友可以參考下
    2024-08-08
  • java文件上傳至ftp服務器的方法

    java文件上傳至ftp服務器的方法

    這篇文章主要為大家詳細介紹了java文件上傳至ftp服務器的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 利用logback filter過濾某個類 屏蔽某個類

    利用logback filter過濾某個類 屏蔽某個類

    這篇文章主要介紹了利用logback filter過濾某個類 屏蔽某個類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java線程封閉之棧封閉和ThreadLocal

    java線程封閉之棧封閉和ThreadLocal

    這篇文章主要介紹了java線程封閉之棧封閉和ThreadLocal,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • mybatis postgresql 批量刪除操作方法

    mybatis postgresql 批量刪除操作方法

    PostgreSQL是一種特性非常齊全的自由軟件的對象-關系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),這篇文章主要介紹了mybatis postgresql 批量刪除操作,需要的朋友可以參考下
    2020-02-02
  • Spring?零基礎入門WebFlux框架體系

    Spring?零基礎入門WebFlux框架體系

    Spring5發(fā)布有兩年了,隨Spring5一起發(fā)布了一個和Spring?WebMvc同級的Spring?WebFlux。這是一個支持反應式編程模型的新框架體系。反應式模型區(qū)別于傳統(tǒng)的MVC最大的不同是異步的、事件驅動的、非阻塞的,這使得應用程序的并發(fā)性能會大大提高,單位時間能夠處理更多的請求
    2022-07-07
  • Java之jpa入門教程講解

    Java之jpa入門教程講解

    這篇文章主要介紹了Java之jpa入門教程講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • 如何對jdk版本升級或降級

    如何對jdk版本升級或降級

    這篇文章主要介紹了如何對jdk版本升級或降級方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java線程的五種狀態(tài)介紹

    Java線程的五種狀態(tài)介紹

    本文主要為大家詳細介紹一下Java實現(xiàn)線程創(chuàng)建的五種寫法,文中的示例代碼講解詳細,對我們學習有一定的幫助,感興趣的可以跟隨小編學習一下
    2022-08-08
  • springboot配置druid多數(shù)據(jù)源的示例代碼

    springboot配置druid多數(shù)據(jù)源的示例代碼

    這篇文章主要介紹了springboot配置druid多數(shù)據(jù)源的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09

最新評論

河东区| 奇台县| 鲁山县| 马龙县| 同心县| 绥宁县| 涞水县| 噶尔县| 通山县| 南康市| 扎兰屯市| 丰镇市| 安丘市| 宁乡县| 克东县| 上高县| 琼海市| 天长市| 贵州省| 龙陵县| 嘉义县| 晋中市| 右玉县| 四平市| 安泽县| 吉水县| 红桥区| 若尔盖县| 华容县| 南澳县| 徐水县| 中山市| 宁城县| 孝义市| 全州县| 通辽市| 改则县| 镶黄旗| 浦县| 巴东县| 宣威市|