日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

深入探討Maven打包:打造精致的Zip包

來源: 責編: 時間:2024-03-26 09:37:42 243觀看
導讀在部署Spring Boot生產項目時,首先需要使用Maven將其打包成一個JAR文件或者包含JAR文件的ZIP文件。隨后,通過堡壘機將打包好的文件上傳至服務器進行部署,或構建成Docker鏡像進行發布。在這一過程中,我們需要將項目中的配

在部署Spring Boot生產項目時,首先需要使用Maven將其打包成一個JAR文件或者包含JAR文件的ZIP文件。隨后,通過堡壘機將打包好的文件上傳至服務器進行部署,或構建成Docker鏡像進行發布。在這一過程中,我們需要將項目中的配置文件或靜態資源放置在JAR包之外,這樣在修改配置文件或靜態資源時就無需重新打包。為了構建ZIP文件,我們使用了Maven Assembly Plugin插件,該插件用于創建項目分發包,通過一個XML描述文件定義打包內容。本文將詳細介紹這一流程。zHX28資訊網——每日最新資訊28at.com

maven-assembly-plugin簡介

maven-assembly-plugin 是一個 Maven 插件,用于創建項目分發包。該插件可以幫助將項目的構建輸出、依賴庫等資源打包成一個歸檔文件,如 JAR、ZIP、TAR 等,方便項目的部署和發布。zHX28資訊網——每日最新資訊28at.com

以下是 maven-assembly-plugin 的一些主要特點和用途:zHX28資訊網——每日最新資訊28at.com

  • 靈活的配置:通過配置插件,可以定義不同的打包方式和內容,滿足各種項目的需求。可以選擇包含依賴庫、特定文件、目錄結構等。
  • 多種打包格式:支持生成不同格式的歸檔文件,如 JAR 包含所有依賴、ZIP 壓縮文件、TAR 文件等,可以根據實際情況選擇合適的打包格式。
  • 自定義描述符:除了預定義的描述符外,還可以編寫自定義描述符文件,以更精細的方式控制打包過程,定義需要包含的文件、目錄結構等。
  • 插件執行階段:通常在 Maven 構建的某個階段(如 package 階段)觸發執行,生成所需的分發包。
  • 簡化部署流程:打包成歸檔文件后,可以方便地進行部署和發布,簡化了項目的交付流程。

maven-assembly-plugin 配置

讓我們來看一下 Maven Assembly Plugin 的配置文件 package.xml,這個文件定義了項目打包的內容和形式。在這個 XML 文件中,我們定義了項目打包的格式為 zip 和 dir,同時指定了一些文件和目錄的打包規則。zHX28資訊網——每日最新資訊28at.com

package.xmlzHX28資訊網——每日最新資訊28at.com

<?xml versinotallow="1.0" encoding="UTF-8"?><assembly        xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> <!--項目打包統一文件 --> <id>package</id> <formats>  <format>zip</format>    <format>dir</format> </formats> <includeBaseDirectory>false</includeBaseDirectory>    <dependencySets>        <dependencySet>            <outputDirectory>lib</outputDirectory>            <scope>runtime</scope>            <excludes>                <exclude>${groupId}:${artifactId}</exclude>            </excludes>        </dependencySet>    </dependencySets> <fileSets>  <!-- 啟動腳本文件打包 -->  <fileSet>   <directory>bin/</directory>   <outputDirectory>./</outputDirectory>            <includes>                <include>*.sh</include>            </includes>   <fileMode>0755</fileMode>   <lineEnding>unix</lineEnding>  </fileSet>  <!--資源文件打包 -->  <fileSet>   <directory>src/main/resources</directory>   <outputDirectory>./</outputDirectory>  </fileSet>  <!-- 啟動jar文件打包 -->  <fileSet>   <directory>${project.build.directory}</directory>   <outputDirectory>./</outputDirectory>   <includes>    <include>*.jar</include>   </includes>  </fileSet> </fileSets></assembly>

在 package.xml 中,我們還可以定義需要打包的依賴庫、啟動腳本文件、靜態資源文件以及啟動 jar 文件等內容。也可以在通過來排除一些我們不需要的資源, 通過這個 XML 文件,我們可以靈活地配置項目打包的內容和結構。zHX28資訊網——每日最新資訊28at.com

Maven Build 配置

在項目的POM文件中,我們還需要引入maven-assembly-plugin插件,并指定其配置文件。由于我們需要將配置文件和靜態資源放置在JAR包之外,因此在打包過程中需要排除這些文件。Maven的配置示例如下:zHX28資訊網——每日最新資訊28at.com

<build>  <!--<finalName>${project.artifactId}-${project.version}</finalName>-->  <sourceDirectory>src/main/java</sourceDirectory>  <resources>   <resource>    <directory>${project.basedir}/src/main/resources</directory>    <filtering>true</filtering>    <excludes>     <exclude>*</exclude>    </excludes>   </resource>   <resource>    <directory>${project.basedir}/src/main/resources</directory>    <filtering>true</filtering>   </resource>  </resources>  <plugins>   <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-resources-plugin</artifactId>    <version>3.1.0</version>    <configuration>     <encoding>UTF-8</encoding>     <nonFilteredFileExtensions>      <nonFilteredFileExtension>xls</nonFilteredFileExtension>      <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>      <nonFilteredFileExtension>csv</nonFilteredFileExtension>     </nonFilteredFileExtensions>    </configuration>   </plugin>   <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-jar-plugin</artifactId>    <version>3.1.0</version>    <configuration>     <archive>      <!-- 添加index則不從mainfest中讀取classpath,而是從Index.list中讀取                        <index>true</index> -->      <manifest>       <mainClass>cn.xj.snowflake.SnowflakeApplication</mainClass>       <addClasspath>true</addClasspath>       <classpathPrefix>lib/</classpathPrefix>       <packageName>${project.artifactId}-${project.version}</packageName>      </manifest>     </archive>     <excludes>      <exclude>config/**</exclude>      <exclude>mapper/**</exclude>      <exclude>mybatis/**</exclude>      <exclude>static/**</exclude>      <exclude>templates/**</exclude>      <exclude>i18n/**</exclude>      <exclude>lib/**</exclude>      <exclude>vm/**</exclude>      <exclude>*.txt</exclude>      <exclude>*.xml</exclude>      <exclude>*.properties</exclude>      <exclude>*.yml</exclude>      <exclude>*.properties</exclude>     </excludes>    </configuration>   </plugin>   <plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-dependency-plugin</artifactId>    <executions>     <execution>      <id>copy</id>      <phase>compile</phase>      <goals>       <goal>copy-dependencies</goal>      </goals>      <configuration>       <outputDirectory>${project.build.directory}/lib</outputDirectory>       <overWriteReleases>false</overWriteReleases>       <overWriteSnapshots>false</overWriteSnapshots>       <overWriteIfNewer>true</overWriteIfNewer>       <includeScope>compile</includeScope>      </configuration>     </execution>    </executions>   </plugin>   <plugin>    <artifactId>maven-assembly-plugin</artifactId>    <configuration>     <appendAssemblyId>false</appendAssemblyId>     <descriptors>      <descriptor>conf/package.xml</descriptor>     </descriptors>    </configuration>    <executions>     <execution>      <id>make-assembly</id>      <phase>package</phase>      <goals>       <goal>single</goal>      </goals>     </execution>    </executions>   </plugin>  </plugins> </build>

在 Maven Build 的配置中,我們引入了 maven-resources-plugin、maven-jar-plugin、maven-dependency-plugin 和 maven-assembly-plugin 這幾個插件,并對它們進行了相應的配置。zHX28資訊網——每日最新資訊28at.com

總結

當我們執行 mvn package 命令進行打包時,Maven 會按照配置文件 package.xml 和插件的配置來生成最終的分發包。Maven Assembly Plugin 會根據配置文件定義的規則將項目的相關文件、依賴庫等內容打包成指定的格式,并完成最終的分發包構建。zHX28資訊網——每日最新資訊28at.com

通過以上的配置和打包過程,我們可以很方便地使用 Maven 來管理項目的打包和發布,而不需要手動進行復雜的文件拷貝和整理工作。zHX28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-79310-0.html深入探討Maven打包:打造精致的Zip包

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 同城雙活:交易鏈路的穩定性與可靠性探索

下一篇: 美國男子因撥打詐騙性質騷擾電話,被美國法院罰款 991.8 萬美元

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
黄色日韩精品| 亚洲美女毛片| 欧美女激情福利| 欧美亚洲日本网站| 亚洲乱码久久| 亚洲二区视频在线| 国内精品伊人久久久久av影院| 国产精品日韩久久久| 欧美日韩天堂| 欧美日本国产在线| 男女激情久久| 久久这里有精品15一区二区三区| 性欧美xxxx视频在线观看| 亚洲午夜av电影| 亚洲手机视频| 亚洲午夜羞羞片| 在线视频亚洲欧美| 一区二区三区|亚洲午夜| 日韩午夜激情电影| 亚洲高清视频在线观看| 影音先锋一区| 黄色成人av网站| 一区二区在线视频| 影音先锋另类| 亚洲国产精品国自产拍av秋霞| 精品动漫3d一区二区三区免费| 国产麻豆精品theporn| 国产精品亚洲人在线观看| 国产精品福利在线| 国产精品推荐精品| 国产欧美日韩三区| 国产在线视频欧美| 激情综合视频| 亚洲国产美女| 日韩亚洲欧美成人一区| 亚洲最新视频在线播放| 亚洲视频在线视频| 亚洲欧美日韩国产| 欧美一级二级三级蜜桃| 久久激情综合| 麻豆精品精华液| 欧美激情视频给我| 欧美视频一区二区三区| 国产精品一区二区在线观看不卡| 国产欧美日韩高清| 国产亚洲欧美一区| 在线国产亚洲欧美| 亚洲伦理精品| 亚洲自拍偷拍色片视频| 欧美在线视频导航| 蜜臀99久久精品久久久久久软件| 欧美成人国产| 欧美三级日本三级少妇99| 国产精品羞羞答答xxdd| 国产日韩在线一区二区三区| 精品999在线播放| 亚洲国产毛片完整版| av成人毛片| 亚洲免费人成在线视频观看| 久久电影一区| 嫩草国产精品入口| 欧美午夜精品电影| 国产亚洲精品v| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲免费观看高清在线观看| 亚洲香蕉成视频在线观看| 欧美亚洲在线视频| 欧美xxx成人| 国产精品亚发布| 亚洲高清资源综合久久精品| 一区二区三区欧美亚洲| 欧美一区二区三区婷婷月色 | 欧美理论视频| 国产嫩草影院久久久久| 在线观看三级视频欧美| 99精品国产在热久久| 新片速递亚洲合集欧美合集| 裸体一区二区三区| 国产精品久久久久久久久久尿 | 亚洲深夜福利网站| 久久九九精品| 欧美午夜在线观看| 在线播放亚洲一区| 亚洲视频在线播放| 另类天堂视频在线观看| 国产精品入口| 亚洲二区视频| 久久激情一区| 欧美性猛交xxxx乱大交蜜桃| 在线精品国产成人综合| 亚洲免费中文| 欧美国产日韩a欧美在线观看| 国产欧美在线视频| 99精品久久久| 老巨人导航500精品| 国产精品区一区二区三区| 最新69国产成人精品视频免费 | 欧美日韩高清在线播放| 韩曰欧美视频免费观看| 亚洲素人在线| 欧美国产免费| 伊人久久成人| 欧美在线观看一区二区| 欧美日韩福利视频| 在线观看国产成人av片| 午夜视频在线观看一区二区| 欧美精品偷拍| 136国产福利精品导航| 先锋资源久久| 国产精品成人免费精品自在线观看| 在线电影院国产精品| 亚洲欧美日韩一区二区在线 | 欧美高清不卡| 精品av久久久久电影| 小辣椒精品导航| 国产精品美腿一区在线看| 日韩视频中午一区| 免费观看欧美在线视频的网站| 国产视频综合在线| 先锋影音久久久| 国产精品扒开腿做爽爽爽视频| 日韩午夜在线播放| 欧美黄色影院| 亚洲国产视频直播| 美女视频黄a大片欧美| 国内精品免费在线观看| 亚洲欧美在线免费| 国产精品免费网站在线观看| 一区二区精品| 欧美日韩精品综合| 亚洲毛片一区| 欧美日韩国产一区二区三区| 亚洲精品一区二区三区不| 久久一二三国产| 一区二区三区在线免费视频| 久久久97精品| 好吊日精品视频| 久久久久久亚洲精品中文字幕 | 欧美成人视屏| 亚洲三级电影在线观看| 欧美88av| 亚洲人成久久| 欧美另类在线观看| 亚洲免费观看高清在线观看 | 欧美日韩另类字幕中文| 一本色道久久综合亚洲二区三区| 欧美日韩国产页| 亚洲视频大全| 国产精品久久久久高潮| 亚洲欧美日韩一区二区三区在线观看 | 欧美国产精品va在线观看| 影院欧美亚洲| 欧美成人一区二区三区在线观看| 在线观看视频欧美| 欧美国产日韩在线| 99精品视频一区| 欧美午夜一区二区三区免费大片 | 欧美激情第4页| 一本色道久久综合亚洲二区三区| 欧美视频导航| 亚洲欧美日本日韩| 国产一区二区日韩精品| 久久精品在线观看| 91久久久精品| 欧美日韩中文| 亚洲综合首页| 国产综合精品一区| 欧美77777| 一区二区三区三区在线| 国产精品综合网站| 久久免费视频这里只有精品| 亚洲国产欧美在线人成| 欧美日韩视频在线观看一区二区三区| 99在线|亚洲一区二区| 国产精品久久久久久久app| 欧美在线观看你懂的| 在线不卡亚洲| 欧美丝袜第一区| 西西裸体人体做爰大胆久久久| 狠久久av成人天堂| 欧美日韩视频在线| 久久国产主播| 亚洲片国产一区一级在线观看| 欧美日韩在线第一页| 欧美一区二区三区四区视频| 在线日韩av| 国产精品大全| 久久视频一区二区| av成人免费观看| 好看的亚洲午夜视频在线| 欧美激情久久久| 亚洲欧美在线一区| 亚洲第一搞黄网站| 国产精品久久久久久久9999 | 久久九九精品99国产精品| 亚洲精品一区二区三区不| 国产精一区二区三区| 欧美激情亚洲另类| 性欧美大战久久久久久久免费观看| 伊人天天综合| 国产精品久久久久久久9999| 你懂的成人av| 亚洲欧美成人一区二区在线电影 | 欧美一区二区三区四区在线观看 |