日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
常用maven插件總結(jié)

maven是目前java項目中比較流行的構(gòu)建工具,特別是它提供的插件,如果使用得當(dāng),整個項目研發(fā)流程都將會受益,從而提高研發(fā)、測試和部署的效率。這里記錄幾個常用插件的用法,既方便自己日后回顧,也便于有興趣的同仁交流指正。各位實踐過程中如果發(fā)現(xiàn)有趣的插件或者更好的用法,也歡迎留言分享。

靖安網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),靖安網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為靖安上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的靖安做網(wǎng)站的公司定做!

Maven工程標(biāo)準(zhǔn)架構(gòu)

插件一 maven-resources-plugin

Maven可以區(qū)別對待Java代碼文件和資源文件,默認的主資源文件目錄是src/main/resources,我們可以通過這個插件實現(xiàn)資源文件過濾。資源文件過濾的意思是指我們可以在資源文件里用使用占位符${propertyName},然后開啟對資源文件的過濾,pom.xml里再統(tǒng)一設(shè)置所有{propertyName}對應(yīng)的值,就可以在構(gòu)建過程中將值替換掉資源文件中對應(yīng)的${propertyName},實現(xiàn)了代碼配置分離、做到了參數(shù)的統(tǒng)一維護。

示例用法

 
 
 
 
  1.  
  2.      
  3.         src/main/resources 
  4.          
  5.             properties/*.properties 
  6.          
  7.         true 
  8.      
  9.      
  10.         src/main/resources 
  11.          
  12.             *.xml 
  13.             mapper/**/*.xml 
  14.             mysqlMapper/**/*.xml 
  15.             *.properties 
  16.          
  17.      
  18.  
  19. …… 
  20.  
  21.     local 
  22.  

我們的主應(yīng)用集成后,會根據(jù)實際要求部署到不同的環(huán)境中,比如聯(lián)調(diào)環(huán)境、測試環(huán)境、壓力環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境等,而這些環(huán)境上的資源配置信息顯然是不一樣的,針對每套環(huán)境,每個具體占位符${propertyName}都會有不同的值,而這種場景可以使用Maven的profile來支持,每個profile都可以獨立維護一套參數(shù)值,在mvn package的時候靈活指定;此外,maven也支持在package的時候指定多個profile,這個特性在執(zhí)行自動部署的時候特別有用。使用這個插件,我們的項目可以做到多環(huán)境支持,參考命令

 
 
 
 
  1. mvn package -Pnocheck,env-test 

示例用法

 
 
 
 
  1.  
  2.      
  3.         nocheck 
  4.          
  5.             true 
  6.             true 
  7.             true 
  8.             true 
  9.             true 
  10.          
  11.      
  12.      
  13.          
  14.         local 
  15.          
  16.             true 
  17.          
  18.          
  19.             local 
  20.          
  21.      
  22.      
  23.         env-test 
  24.          
  25.             env-test 
  26.          
  27.      
  28.  

插件二 maven-jar-plugin

當(dāng)我們將項目模塊化后,有一些通用的資源文件基本上大多數(shù)模塊都會用到,比如log4j.properties,jdbc.properties等,模塊中有了這些資源文件,我們才能單獨對該模塊進行開發(fā)、調(diào)試。默認情況下maven-jar-plugin會將這些資源文件全部package成一個jar包進行發(fā)布,如果這樣的jar包集成到一個主應(yīng)用中部署,運行,很可能導(dǎo)致主應(yīng)用的配置不生效,我稱之為配置混亂,為了解決這個問題,可以開啟maven-jar-plugin的排除功能,在執(zhí)行mvn package之前排除指定的資源文件。

示例用法

 
 
 
 
  1.  
  2.     org.apache.maven.plugins 
  3.     maven-jar-plugin 
  4.      
  5.          
  6.             applicationContext.xml 
  7.             properties/** 
  8.             log4j.properties 
  9.          
  10.      
  11.  

插件三 maven-war-plugin

項目如果是web主應(yīng)用,我們可以使用maven-war-plugin來對webapps下各類文件進行過濾。用法參考maven-resources-plugin

示例用法

 
 
 
 
  1.  
  2.     org.apache.maven.plugins 
  3.     maven-war-plugin 
  4.      
  5.         demo-Rest 
  6.          
  7.              
  8.                 src/main/webapp/WEB-INF 
  9.                 true 
  10.                 WEB-INF 
  11.                  
  12.                     web.xml 
  13.                  
  14.              
  15.          
  16.      
  17.  

插件四 properties-maven-plugin

隨著項目的不斷迭代,我們的資源配置項將會變得更多,這個會直接影響到pom.xml的體積膨脹;此外,如果項目目標(biāo)部署環(huán)境比較多,pom.xml將會膨脹得更快,更加難以維護。為了解決這個問題,我們需要將這些配置信息獨立出來,并按照不同環(huán)境進行歸類,使用properties-maven-plugin就會達到這個效果。

示例用法(將每個環(huán)境的信息放在不同的目錄下,然后在mvn package切換不同的profile實現(xiàn)去指定目錄讀取配置信息,用讀取到的value去替換資源配置文件的占位符)

 
 
 
 
  1.  
  2.     org.codehaus.mojo 
  3.     properties-maven-plugin 
  4.     1.0.0 
  5.      
  6.          
  7.             profiles/${runtime.env}/jdbc.properties 
  8.             profiles/${runtime.env}/redis.properties 
  9.             profiles/${runtime.env}/batch.properties 
  10.             profiles/${runtime.env}/config.properties 
  11.          
  12.      
  13.      
  14.          
  15.             initialize 
  16.              
  17.                 read-project-properties 
  18.              
  19.          
  20.      
  21.  

插件五 maven-assembly-plugin

Java項目中有一種類型的主應(yīng)用,是需要獨立部署在后臺啟動的,比如socket服務(wù)程序,比如定時調(diào)度程序,比如dubbo服務(wù)程序,這些程序理論上只需要執(zhí)行一個簡單的java命令即可;稍微復(fù)雜一些的,我們可以規(guī)范一下自己的主應(yīng)用結(jié)構(gòu),定義配置文件夾和依賴庫文件夾,再準(zhǔn)備啟動的批處理腳本sh或bat文件即可。使用maven-assembly-plugin就可以達到這種效果。

示例用法

 
 
 
 
  1.  
  2.     org.apache.maven.plugins 
  3.     maven-assembly-plugin 
  4.      
  5.         false 
  6.          
  7.             target/classes/package.xml 
  8.          
  9.      
  10.      
  11.          
  12.             make-assembly 
  13.             package 
  14.              
  15.                 single 
  16.              
  17.          
  18.      
  19.  

附package.xml

 
 
 
 
  1. xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" 
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3. xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> 
  4.     package 
  5.      
  6.         tar.gz 
  7.      
  8.     true 
  9.      
  10.          
  11.             src/main/bin 
  12.              
  13.                 *.sh 
  14.                 *.bat 
  15.              
  16.             true 
  17.              
  18.             0755 
  19.          
  20.          
  21.             ${basedir}/src/main/config 
  22.              
  23.                 *.properties 
  24.                 log4j.xml 
  25.              
  26.             config 
  27.             true 
  28.             0644 
  29.          
  30.          
  31.             ${basedir}/src/main/config 
  32.              
  33.                 log4j.dtd 
  34.              
  35.             config 
  36.             0644 
  37.          
  38.      
  39.      
  40.          
  41.             lib 
  42.             runtime 
  43.             0644 
  44.          
  45.      
  46.  

附示例生成的Java應(yīng)用結(jié)構(gòu)圖

插件六 maven-shade-plugin

有時候,我們需要將所有配置文件和依賴庫文件全部放在一個jar包中,運維的同事只需要執(zhí)行java -jar batch.jar即可完成啟動。雖然使用maven-assembly-plugin也可以做到這一點,但是在讀取配置文件的時候有可能會遇到一些問題,這個時候,我們可能需要使用到maven-shade-plugin這個插件,經(jīng)筆者實踐按照如下示例用法配置確實可用;當(dāng)然本示例配置了mainClass,直接執(zhí)行java -jar batch.jar確實沒問題,但如果執(zhí)行java com.fastjrun.demospring4.BatchInit -classpath batch.jar也是可以的。

示例用法

 
 
 
 
  1.  
  2.     org.apache.maven.plugins 
  3.     maven-shade-plugin 
  4.     3.0.0 
  5.      
  6.          
  7.             package 
  8.              
  9.                 shade 
  10.              
  11.              
  12.                 batch 
  13.                 true 
  14.                 jar-with-dependencies 
  15.                  
  16.                     
  17.                         implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
  18.                         com.fastjrun.demospring4.BatchInit 
  19.                      
  20.                     
  21.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
  22.                         META-INF/spring.handlers 
  23.                      
  24.                     
  25.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
  26.                         META-INF/spring.schemas 
  27.                      
  28.                     
  29.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
  30.                         META-INF/spring.tooling 
  31.                      
  32.                  
  33.                  
  34.                      
  35.                         *:* 
  36.                          
  37.                             META-INF/*.SF 
  38.                             META-INF/*.DSA 
  39.                             META-INF/*.RSA 
  40.                          
  41.                      
  42.                  
  43.              
  44.          
  45.      
  46.  

插件七 versions-maven-plugin

當(dāng)項目模塊化后,我們會遇到一個問題,就是項目版本升級的時候,需要同時變更父模塊和所有子模塊中的版本號 ,而這是一個比較瑣碎且容易出錯的事情,還好maven考慮得很周到,提供了這樣一個插件,我們使用命令行就可以達到效果了。我們的項目視圖如下

參考命令如下

 
 
 
 
  1. mvn versions:set -DnewVersion=1.2-SNAPSHOT 

總結(jié)

本文匯總了筆者常用的幾個插件及其用法,經(jīng)實踐,基于eclipse的kepler、luna版本都能很好支持maven-resources-plugin、maven-jar-plugin、maven-war-plugin和properties-maven-plugin使用,同時也支持profile的activeByDefault設(shè)置,研發(fā)同事在不需要任何調(diào)整的情況下就能直接開發(fā)、調(diào)試代碼,且在開發(fā)結(jié)束后,可以直接使用mvn命令打包,打出各個環(huán)境的部署程序。從開發(fā)、調(diào)試、測試、驗證到上線的整個過程,所有模塊的pom.xml直到下一個迭代變更版本前都不用修改,直接使用。

【本文為專欄作者“崔瑩峰”的原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文


當(dāng)前標(biāo)題:常用maven插件總結(jié)
文章出自:http://www.dlmjj.cn/article/dpgocec.html