一、前言
對于開發(fā)一個Java項(xiàng)目,上線之前會通過編譯,測試,打包,部署這幾個構(gòu)建過程,如果文件較少,我們可以使用java-->javac-->jar這些命令去完成上述的構(gòu)建流程。但是當(dāng)工程越來越大,文件越來越多。Java原生的命令就顯得捉襟見肘,力不存心了。Maven基于POM管理jar包依賴,通過自身的生命周期實(shí)現(xiàn)項(xiàng)目的構(gòu)建流程。具體構(gòu)建原理可自行百度/谷歌。本文主要為大家分享一些比較實(shí)用的maven使用技巧。
二、配置技巧
1. 多辦公環(huán)境開發(fā)配置技巧
在公司辦公時,依賴包加載會用公司的私服;在家辦公時,依賴包加載會用阿里/網(wǎng)易等國內(nèi)鏡像。辦公環(huán)境切換時,我們想通過簡單的方式切換,而不是每次都更改maven的settings配置文件,怎么辦呢?可參考如下方案:
<settings>
<profile>
<id>company</id>
<repositories>
<repository>
<id>nexus</id>
<name>nexus-repositories</name>
<url>http://xxxx.xxxx.xxx:xxxx/nexus/content/repositories</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>home</id>
<repositories>
<repository>
<id>aliyun</id>
<name>central</name>
<url>https://maven.aliyun.com/repository/central</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<activeProfiles>
<activeProfile>company</activeProfile>
<activeProfile>home</activeProfile>
</activeProfiles>
</settings>
配置完之后,idea會在側(cè)邊欄出現(xiàn)可選框,點(diǎn)擊相應(yīng)的辦公環(huán)境即可,再次打包即可。如下圖:

2. 構(gòu)建日志輸出配置技巧
打包時,我們會注意到構(gòu)建日志會輸出到屏幕,如果工程比較大,相應(yīng)的大量日志也會輸出。那有沒有辦法可以調(diào)整輸出的日志級別的,答案是有的,可參考下面的三種方案:
- 編輯mvn執(zhí)行文件 ${MAVEN_HOME}/bin/mvn 新增一行配置
MAVEN_OPTS="-Dorg.slf4j.simpleLogger.defaultLogLevel=warn"
- maven安裝目錄下:conf/logging/simplelogger.properties 修改輸出日志級別
org.slf4j.simpleLogger.defaultLogLevel=warn
- 在執(zhí)行mvn命令的時候使用參數(shù) -q,不過這樣只能輸出error信息
mvn clean package -DskipTests -q
3. 文件過濾打包配置技巧
我們有時希望maven打包時只把某些資源文件打入jar包,而并不是所有的文件,此時我們可以在POM文件做如下配置:
<!--配置Maven 對resource文件 過濾 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 打包時,只加載aa.properties和bb.xml -->
<includes>
<include>**/aa.properties</include>
<include>**/bb.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
4. 離線開發(fā)的配置技巧
有時處于安全考慮我們需要在斷網(wǎng)的環(huán)境下進(jìn)行開發(fā),例如生產(chǎn)環(huán)境。此時不能連接外網(wǎng)依賴如何加載呢?如何進(jìn)行開發(fā)呢?maven提供了離線模式,前提是需要將下載好依賴包上傳到內(nèi)網(wǎng)環(huán)境并安裝maven等相關(guān)工具,可參考如下兩種方案:
- 在 settings.xml中進(jìn)行更改 在第一個標(biāo)記中添加

<localRepository>~/.m2/repository</localRepository>
<offline>true</offline>
使用mvn clean package -DskipTests=true進(jìn)行打包
-
在pom文件中指定本地倉庫
maven_local_pom.png
<repositories>
<repository>
<id>local</id>
<name>local Repository</name>
<url>file://${project.basedir}/.m2/repository</url>
</repository>
</repositories>
使用mvn -o clean install -DskipTests=true進(jìn)行打包
三、總結(jié)
以上就是今天大獅兄和大家分享的關(guān)于maven配置相關(guān)的內(nèi)容,包含多辦公環(huán)境切換的配置、構(gòu)建日志輸出的配置、打包文件過濾的配置、離線開發(fā)的配置。文章觀點(diǎn)或者結(jié)論亦或其他如有錯誤,歡迎大家評論或者私信進(jìn)行斧正。同時如果此篇文章對大家有所幫助,也歡迎大家點(diǎn)贊、收藏、關(guān)注。
