Maven外掛之maven-assembly-plugin
使用Maven對Web專案進行打包,預設為war包;但有些時候,總是希望打成zip包(亦或其他壓縮包),maven-war-plugin外掛就無能為力了,這時就用到了maven-assembly-plugin外掛了,官方網址:
該外掛能打包成指定格式分發包,更重要的是能夠自定義包含/排除指定的目錄或檔案(遺留專案中,過濾配置檔案時,或者僅僅需要釋出圖片或者CSS/JS等指定型別檔案時,發揮作用)
該外掛使用如下:
如上所示,繫結到package階段,自動打包;需要指定一個Assembly描述符檔案,該檔案指定了打包格式,包含的檔案/過濾的檔案等資訊,可以同時指定多個描述符檔案,打包成不同的格式;<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>${basedir}/assembly.xml</descriptor> <!-- Assembly 描述符檔案 --> <!-- <descriptor>src/main/assembly/assembly.xml</descriptor> --> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
以下是assembly.xml檔案內容(該內容表示,打包時,排除WEB-INF/lib目錄下的所有檔案):
如此即可。<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd"> <id>full</id> <formats> <format>zip</format> <!--打包檔案格式--> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <fileSet> <outputDirectory>/</outputDirectory> <directory>WebRoot</directory> <includes> <include>**/*</include> </includes> <excludes> <exclude>WEB-INF/lib/*</exclude> </excludes> </fileSet> </fileSets> </assembly>
細心的朋友也許會發現,如果同時管理多個Web專案,那麼就要拷貝多個描述符檔案到每一個專案中,重複的勞動;其實我更想說的是,假如管理著十幾個甚至幾十個Web專案(本人就同時修改十幾個Web專案),而如上所述的重複勞動,仍然不厭其煩的做完了,突然有一天,領導說,打zip包時,需要在排除/新增某某檔案,剩下的就不用我多說了吧,唉.....
下面再介紹另外一種指定描述符檔案的做法(該做法應算作最佳實踐了):
建立一個Java專案,該專案中僅僅有描述符檔案,打包成jar檔案,部署到私服中;如下圖所示:
有一點要求:所有的描述符檔案都必須放到assemblies資料夾下面,參考:
專案中使用assembly外掛如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<dependencies>
<dependency>
<groupId>com.travelsky.tdp.pkgstock</groupId>
<artifactId>stock-assembly-descriptor</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<ignoreMissingDescriptor>true</ignoreMissingDescriptor>
<descriptorRefs>
<descriptorRef>zipAll</descriptorRef>
<descriptorRef>zipFilterConf</descriptorRef>
<descriptorRef>zipJsCssOnly</descriptorRef>
<descriptorRef>zipPicOnly</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
外掛中增加對描述符jar的依賴,同時指定需要使用的描述符檔案(無需新增.xml字尾);
如此使用,可在多個Web專案中共享同一份打包描述符檔案,也更具有可擴充套件性,更好維護。
VPN可參考:
http://blog.csdn.NET/wangjunjun2008/article/details/53883932
相關推薦
Maven外掛之maven-assembly-plugin
使用Maven對Web專案進行打包,預設為war包;但有些時候,總是希望打成zip包(亦或其他壓縮包),maven-war-plugin外掛就無能為力了,這時就用到了maven-assembly-plugin外掛了,官方網址: 該外掛能打包成指定格式分發包,更重要的是能夠
maven外掛之maven之maven-surefire-plugin
1.maven-surefire-plugin是個什麼鬼? 如果你執行過 mvn test 或者執行其他maven命令時跑了測試用例,你就已經用過 maven-surefire-plugin 了。 maven-surefire-plugin 是maven裡執行測試用例的
Maven 外掛之 maven-antrun-plugin
雖然Maven已經代替Ant,成為Java 工業領域事實上的構建標準.但在某些情況下,如果可以用Ant命令,還是很方便的. 藉助 maven-antrun-plugin 外掛,可以在Maven執行時,額外執行Ant指令碼. 打包完成後,把構建結果複製
Maven外掛之maven-resources-plugin
浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>
maven外掛之tomcat7-maven-plugin
tomcat7-maven-plugin外掛的pom.xml依賴為: <dependency> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomc
Maven 外掛之 docker-maven-plugin 的使用
目錄 docker-maven-plugin 介紹 環境、軟體準備 Demo 示例 配置 DOCKER_HOST 示例構建映象 指定構建資訊到 POM 中構建 使用 Dockerfile 構建 使用命令 繫結 Docker 命令到 Maven各個階段 使
maven外掛之build-helper-maven-plugin
Maven預設只允許指定一個主Java程式碼目錄和一個測試Java程式碼目錄。 雖然這其實是個應當儘量遵守的約定,但偶爾你還是會希望能夠指定多個原始碼目錄(例如為了應對遺留專案),build-help
開發自己的Maven外掛之三 使用外掛
好,現在建立另一個Maven專案來使用第二篇建立的plugin.注意還是通過私服獲取。pom.xml配置如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2
Maven外掛之mybatis-generator(mybatis自動生成實體程式碼的外掛)
3.1 配置 1在pom.xml中做兩處配置 1.1配置dependency 要使用generator外掛自動生成相關檔案,需要引入mybatis-generator-core這個包,在<dependencys>中加入
maven 外掛之 AutoConfig 工具使用筆記
AutoConfig 是一款 maven 外掛,主要用於 Maven 專案打包使用。在我們的工作中,會將自己寫的程式碼打成 jar 包或者 war 包釋出到各種環境上。一般地,不用的環境所使用的資料庫、快取的配置是不同的。我們完全可以手工修改不用環境的配置,當然
Maven外掛wagon-maven-plugin自動化部署
檔案上傳到伺服器 Maven專案可使用mvn package指令打包,打包完成後包位於target目錄下,要想在遠端伺服器上部署,首先要將包上傳到伺服器。 在專案的pom.xml中配置wagon-maven-plugin外掛: 123456789101112131415
【maven外掛】maven-surefire-plugin生成單元測試報告單(.html)
在pom.xml新增外掛: <build> <finalName>javawebdemo</finalName> <plu
Maven外掛之繫結階段
開發十年,就只剩下這套架構體系了! >>>
maven基礎教程(maven視訊)之maven快速入門2
maven免費視訊地址 maven入門 settings.xml和倉庫 $user.home/.m2/repository/settings.xml 為使用者範圍的配置檔案 $M2_HOME/conf/settings.xml 為全
自定義Maven Archetype之 maven-archetype-archetype
nat sna type utf 過程 分享 圖片 jdb 避免 Maven自身提供了許多Archetype來方便用戶創建Project,但是每個團隊都可能會有一些常用的文件或配置,為了避免在創建project時重復的拷貝和修改,我們通過自定義Archetype來規範顯得還
使用maven-assembly-plugin外掛打包
在pom.xml中配置 <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupI
Maven外掛系列之spring-boot-maven-plugin Maven外掛系列之spring-boot-maven-plugin
Maven外掛系列之spring-boot-maven-plugin Spring Boot的Maven外掛(Spring Boot Maven plugin)能夠以Maven的方式為應用提供Spring Boot的支援,即為Spring Boot應用提供了執行Maven操作的可能。Spring
pom檔案中maven-assembly-plugin外掛學習
一、使用場景 如果專案是微服務架構,可能用到這個外掛的概率比較高,平時普通的專案不需要這樣的實現方式。 如果專案內的一部分通用功能,不需要挨個引用,則需要將通用功能部分達成jar包。 二、Maven-assembly-plugin作用 1、作用:要想將寫的程式
maven外掛介紹之tomcat7-maven-plugin
tomcat7-maven-plugin外掛的pom.xml依賴為: <dependency> <groupId>org.apache.tomcat.maven</groupId> <artifactId>
使用maven-assembly-plugin外掛,將maven管理的遠端和本地依賴jar包打入可執行jar包
最近在修改一個小工具,原來的做法是把依賴包都下載到本地目錄,打包時候使用fatjar打包整個專案依賴;現在修改為maven管理依賴包,使用maven-assembly-plugin外掛打包;如果依賴包全部是遠端預設的依賴配置,這樣沒有問題;但裡面有些是自己實現的本地依賴,這個