<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          maven-自定義打包maven-assembly-plugin插件

          共 4800字,需瀏覽 10分鐘

           ·

          2021-05-05 03:09

          ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????

          作者丨Coder技術(shù)棧

          來源丨匠心Java


          插件名稱:maven-assembly-plugin目前最新的版本:3.2.0作用:該插件可以使用戶根據(jù)自己的需求自定義打包規(guī)則和打包類型

          pom文件配置示例

          1. <plugin>

          2. <groupId>org.apache.maven.plugins</groupId>

          3. <artifactId>maven-assembly-plugin</artifactId>

          4. <version>3.2.0</version>

          5. <configuration>

          6. <finalName>testProject</finalName> <!-- 配置打包后的文件前綴名 -->

          7. <descriptors>

          8. <descriptor>src/main/assembly/package.xml</descriptor> <!-- 配置文件路徑 -->

          9. </descriptors>

          10. </configuration>

          11. <executions> <!-- 配置assembly goals -->

          12. <execution>

          13. <id>make-assembly</id>

          14. <phase>package</phase>

          15. <goals>

          16. <goal>single</goal>

          17. </goals>

          18. </execution>

          19. </executions>

          20. </plugin>

          package.xml文件自定義打包配置

          1. <?xml version="1.0" encoding="UTF-8"?>

          2. <assembly>

          3. <!-- 最終打包文件的后綴,格式為 ${fileName}-bin -->

          4. <id>bin</id>

          5. <!-- 最終打包成一個(gè)用于發(fā)布的zip文件 -->

          6. <formats>

          7. <format>zip</format>

          8. </formats>


          9. <!-- 把依賴的jar包打包進(jìn)zip的lib目錄下-->

          10. <dependencySets>

          11. <dependencySet>

          12. <!-- 不使用項(xiàng)目的artifact -->

          13. <useProjectArtifact>false</useProjectArtifact>

          14. <!-- 打包進(jìn)zip文件下的lib目錄中 -->

          15. <outputDirectory>lib</outputDirectory>

          16. <!-- 第三方j(luò)ar不要解壓 -->

          17. <unpack>false</unpack>

          18. </dependencySet>

          19. </dependencySets>


          20. <!-- 文件配置 -->

          21. <fileSets>

          22. <!-- 把項(xiàng)目的配置文件,打包進(jìn)zip包的config目錄下 -->

          23. <fileSet>

          24. <!-- 配置項(xiàng)目中需要被打包的文件的存儲(chǔ)路徑 -->

          25. <directory>${project.basedir}/src/main/resources/${env}</directory>

          26. <outputDirectory>/config</outputDirectory>

          27. <includes>

          28. <!-- 可以指定單個(gè)文件 -->

          29. <!--<include>project.config</include>-->

          30. <!-- 可以直接指定所有文件 -->

          31. <include>*.*</include>

          32. </includes>

          33. </fileSet>


          34. <!-- 把項(xiàng)目的配置文件,打包進(jìn)zip包的根目錄下 -->

          35. <fileSet>

          36. <directory>${project.basedir}/src/main/resources/${env}</directory>

          37. <outputDirectory></outputDirectory>

          38. <includes>

          39. <include>scf*.xml</include>

          40. </includes>

          41. </fileSet>


          42. <!-- 把項(xiàng)目自己編譯出來根目錄下的jar文件,打包進(jìn)zip文件的根目錄 -->

          43. <fileSet>

          44. <directory>${project.build.directory}</directory>

          45. <outputDirectory></outputDirectory>

          46. <includes>

          47. <include>*.jar</include>

          48. </includes>

          49. </fileSet>


          50. <!-- 把項(xiàng)目自己編譯出來的jar文件夾下的jar文件,去除第三方j(luò)ar,打包進(jìn)zip文件的根目錄 -->

          51. <fileSet>

          52. <directory>${project.build.directory}/jar</directory>

          53. <outputDirectory></outputDirectory>

          54. <excludes>

          55. <exclude>lib/*.jar</exclude>

          56. </excludes>

          57. <includes>

          58. <include>*.jar</include>

          59. </includes>

          60. </fileSet>

          61. </fileSets>

          62. </assembly>

          運(yùn)行maven的package后,會(huì)進(jìn)行編譯和打包,按照上述的配置會(huì)多產(chǎn)生一個(gè) testProject-bin.zip文件 或者直接運(yùn)行plugins-assembly下的 assembly:single,這樣項(xiàng)目不會(huì)重新編譯,只會(huì)將相應(yīng)的文件按照上述配置打包成 testProject-bin.zip文件

          testProject-bin.zip文件解壓后的目錄結(jié)構(gòu):- testProject-bin.zip -- testProject -- -- config -- -- -- project.config -- -- -- project2.config -- -- lib -- -- -- log4j-core-2.8.2.jar -- -- -- mybatis-3.2.3.jar -- -- -- ... -- -- testProject.jar -- -- log4j2.xml

          下面對(duì)上述簡(jiǎn)單介紹一下

          id:添加到打包文件名的標(biāo)識(shí)符,用來做后綴;例如bin,格式為 \${fileName}-binformats:是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war??梢酝瑫r(shí)定義多個(gè)format;如果按上面的配置,生成的文件就是${fileName}-bin.zip。

          dependencySets/dependencySet設(shè)置工程依賴文件在打包時(shí)的屬性。也與fileSets大致相同,不過還有兩個(gè)特殊的配置:

          • unpack:布爾值,false表示將依賴以原來的JAR形式打包,true則表示將依賴解成*.class文件的目錄結(jié)構(gòu)打包。

          • scope:表示符合哪個(gè)作用范圍的依賴會(huì)被打包進(jìn)去。compile與provided都不用管,一般是寫runtime。

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

          • directory:源目錄的路徑

          • includes/excludes:設(shè)定包含或排除哪些文件,支持通配符

          • fileMode:指定該目錄下的文件屬性,采用Unix八進(jìn)制描述法,默認(rèn)值是0644

          • outputDirectory:生成目錄的路徑

          files/file與fileSets大致相同,不過是指定單個(gè)文件,還可以通過destName屬性來設(shè)置與源文件不同的名稱

          參考:官網(wǎng):assembly插件官網(wǎng)介

          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里好文分享給更多人↓↓

          瀏覽 16
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产日韩欧美视频 | 日韩国产传媒 | 欧美大黄网站 | 万影网五月天成人网 | 亚洲色五月天 |