構(gòu)建工具之Maven的使用(一)

一、前言

對于開發(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)境即可,再次打包即可。如下圖:


maven_multi_office.png

2. 構(gòu)建日志輸出配置技巧

打包時,我們會注意到構(gòu)建日志會輸出到屏幕,如果工程比較大,相應(yīng)的大量日志也會輸出。那有沒有辦法可以調(diào)整輸出的日志級別的,答案是有的,可參考下面的三種方案:

  1. 編輯mvn執(zhí)行文件 ${MAVEN_HOME}/bin/mvn 新增一行配置
MAVEN_OPTS="-Dorg.slf4j.simpleLogger.defaultLogLevel=warn"
  1. maven安裝目錄下:conf/logging/simplelogger.properties 修改輸出日志級別
org.slf4j.simpleLogger.defaultLogLevel=warn
  1. 在執(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)工具,可參考如下兩種方案:

  1. 在 settings.xml中進(jìn)行更改 在第一個標(biāo)記中添加
maven_local.png
<localRepository>~/.m2/repository</localRepository>
<offline>true</offline>

使用mvn clean package -DskipTests=true進(jìn)行打包

  1. 在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)注。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容