maven三個(gè)常用的插件使用介紹
背景
maven 常用的三個(gè)插件對(duì)打包有不同的作用:
maven-jar-plugin:處理 jar 包生成;
spring-boot-maven-plugin:SpringBoot 項(xiàng)目打包;
maven-assembly-plugin:自定義打包結(jié)構(gòu)。
而實(shí)際開(kāi)發(fā)過(guò)程中這三個(gè)插件可能都綜合使用,本文類(lèi)介紹混合使用這些插件時(shí)需要注意的事項(xiàng)。
SpringBoot 打包時(shí)排除文件
SpringBoot 項(xiàng)目打包時(shí)一般會(huì)抽出配置文件和靜態(tài)資源文件到指定目錄,然后通過(guò) --spring.config.additional-location=file:xxx 額外指定配置文件。
這樣的話,SpringBoot 打包時(shí)就需要排除配置文件和靜態(tài)資源文件,可以用 maven-ja-pluginr 插件來(lái)排除:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<excludes>
<exclude>*.yml</exclude>
<exclude>static/**</exclude>
<exclude>lib/**</exclude>
</excludes>
</configuration>
</plugin>
注意:如果排除文件夾,需要后面兩個(gè)星星。
Spring 打包本地依賴(lài) jar
如果項(xiàng)目需要依賴(lài)本地某目錄下的 jar 包,而它又沒(méi)有在倉(cāng)庫(kù)中發(fā)布的話,可以通過(guò)如下方式添加依賴(lài):
<dependency>
<groupId>XXXX</groupId>
<artifactId>XXX</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/xxx.jar</systemPath>
</dependency>
值得注意的是,如果項(xiàng)目用了 SpringBoot 打包插件,默認(rèn)是不會(huì)將 system 作用域的 jar 打入 lib 目錄的,需要添加 includeSystemScope 配置將第三方 jar 包加入到 lib :
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
編譯時(shí)排除指定文件
pom.xml 的 resources 配置可以對(duì)資源文件進(jìn)行篩選,常見(jiàn)配置如下:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>static/**</exclude>
<exclude>*.yml</exclude>
</excludes>
</resource>
</resources>
該方式會(huì)直接影響編譯時(shí)資源文件的處理過(guò)程,即 target 目錄下的 classes 目錄中就不包括指定文件,從而導(dǎo)致本地運(yùn)行時(shí)缺少配置文件,所以開(kāi)發(fā)期間不建議用這種方式。
復(fù)制粘貼的原則
想起以前看到的一段經(jīng)典話語(yǔ):
我從互聯(lián)網(wǎng)上得到的最好的經(jīng)驗(yàn)之一,就是永遠(yuǎn)不要復(fù)制和粘貼不是自己編寫(xiě)的代碼。如果你一定要復(fù)制,那就照著它逐字輸入,逼著自己思考,這些代碼實(shí)際上是什么意思。
除了代碼需要復(fù)制粘貼,平時(shí)文檔編寫(xiě)時(shí)也免不了拿舊文檔做模板。
word 文檔編寫(xiě)過(guò)程中,如果內(nèi)容是復(fù)制、粘貼的,我的經(jīng)驗(yàn)是,完成后必做幾項(xiàng)檢查:
標(biāo)題:檢查文檔中的標(biāo)題、系統(tǒng)名稱(chēng)是否更正為目標(biāo)文檔的內(nèi)容。目錄更正:文檔頁(yè)碼變化后,必須重新生成目錄與之對(duì)應(yīng)。修改內(nèi)容校對(duì):修改過(guò)的內(nèi)容,需要校對(duì)至少三遍。
總結(jié)
到此這篇關(guān)于maven三個(gè)常用的插件使用介紹的文章就介紹到這了,更多相關(guān)maven插件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中的export方法實(shí)現(xiàn)導(dǎo)出excel文件
這篇文章主要介紹了java中的export方法實(shí)現(xiàn)導(dǎo)出excel文件,文章圍繞java導(dǎo)出excel文件的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
Java的MyBatis框架中實(shí)現(xiàn)多表連接查詢(xún)和查詢(xún)結(jié)果分頁(yè)
這篇文章主要介紹了Java的MyBatis框架中實(shí)現(xiàn)多表連接查詢(xún)和查詢(xún)結(jié)果分頁(yè),借助MyBatis框架中帶有的動(dòng)態(tài)SQL查詢(xún)功能可以比普通SQL查詢(xún)做到更多,需要的朋友可以參考下2016-04-04
java如何使用自己的maven本地倉(cāng)庫(kù)詳解
這篇文章主要給大家介紹了關(guān)于java如何使用自己的maven本地倉(cāng)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Java中的強(qiáng)制類(lèi)型轉(zhuǎn)換 大數(shù)轉(zhuǎn)小數(shù)
這里主要討論一下大數(shù)轉(zhuǎn)小數(shù),比如int類(lèi)型轉(zhuǎn)short類(lèi)型。小數(shù)轉(zhuǎn)大數(shù),如short 轉(zhuǎn) int不做討論,需要的朋友可以參考下2020-02-02
SpringBoot實(shí)現(xiàn)初始化的三種策略模式
本文主要介紹了SpringBoot實(shí)現(xiàn)初始化的三種策略模式,包括默認(rèn)初始化策略、懶加載初始化策略和自定義初始化策略,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
教你安裝eclipse2021并配置內(nèi)網(wǎng)maven中心倉(cāng)庫(kù)的圖文詳解
本文能通過(guò)圖文并茂的形式給大家介紹安裝eclipse2021并配置內(nèi)網(wǎng)maven中心倉(cāng)庫(kù)的相關(guān)知識(shí),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09
Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解
Spring?MVC?是?Spring?提供的一個(gè)基于?MVC?設(shè)計(jì)模式的輕量級(jí)?Web?開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于?Servlet,Spring?MVC?角色劃分清晰,分工明細(xì),本章來(lái)講解SpringMVC數(shù)據(jù)響應(yīng)2022-04-04

