maven三個常用的插件使用介紹
背景
maven 常用的三個插件對打包有不同的作用:
maven-jar-plugin:處理 jar 包生成;
spring-boot-maven-plugin:SpringBoot 項目打包;
maven-assembly-plugin:自定義打包結(jié)構(gòu)。
而實際開發(fā)過程中這三個插件可能都綜合使用,本文類介紹混合使用這些插件時需要注意的事項。
SpringBoot 打包時排除文件
SpringBoot 項目打包時一般會抽出配置文件和靜態(tài)資源文件到指定目錄,然后通過 --spring.config.additional-location=file:xxx 額外指定配置文件。
這樣的話,SpringBoot 打包時就需要排除配置文件和靜態(tài)資源文件,可以用 maven-ja-pluginr 插件來排除:
<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>
注意:如果排除文件夾,需要后面兩個星星。
Spring 打包本地依賴 jar
如果項目需要依賴本地某目錄下的 jar 包,而它又沒有在倉庫中發(fā)布的話,可以通過如下方式添加依賴:
<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>
值得注意的是,如果項目用了 SpringBoot 打包插件,默認是不會將 system 作用域的 jar 打入 lib 目錄的,需要添加 includeSystemScope 配置將第三方 jar 包加入到 lib :
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
編譯時排除指定文件
pom.xml 的 resources 配置可以對資源文件進行篩選,常見配置如下:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>static/**</exclude>
<exclude>*.yml</exclude>
</excludes>
</resource>
</resources>
該方式會直接影響編譯時資源文件的處理過程,即 target 目錄下的 classes 目錄中就不包括指定文件,從而導致本地運行時缺少配置文件,所以開發(fā)期間不建議用這種方式。
復制粘貼的原則
想起以前看到的一段經(jīng)典話語:
我從互聯(lián)網(wǎng)上得到的最好的經(jīng)驗之一,就是永遠不要復制和粘貼不是自己編寫的代碼。如果你一定要復制,那就照著它逐字輸入,逼著自己思考,這些代碼實際上是什么意思。
除了代碼需要復制粘貼,平時文檔編寫時也免不了拿舊文檔做模板。
word 文檔編寫過程中,如果內(nèi)容是復制、粘貼的,我的經(jīng)驗是,完成后必做幾項檢查:
標題:檢查文檔中的標題、系統(tǒng)名稱是否更正為目標文檔的內(nèi)容。目錄更正:文檔頁碼變化后,必須重新生成目錄與之對應。修改內(nèi)容校對:修改過的內(nèi)容,需要校對至少三遍。
總結(jié)
到此這篇關(guān)于maven三個常用的插件使用介紹的文章就介紹到這了,更多相關(guān)maven插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Eureka注冊不上或注冊后IP不對(多網(wǎng)卡的坑及解決)
這篇文章主要介紹了Eureka注冊不上或注冊后IP不對(多網(wǎng)卡的坑及解決),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Java實現(xiàn)企業(yè)微信消息推送功能的詳細步驟
這篇文章主要介紹了Java實現(xiàn)企業(yè)微信消息推送功能,本文圖文實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下2022-04-04
Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例
這篇文章主要介紹了Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例,在多線程操作中,我們通常會添加鎖來保證線程的安全,那么這樣勢必會影響程序的性能,那么為了解決這一問題,于是就有了在無鎖操作的情況下依然能夠保證線程的安全,需要的朋友可以參考下2023-12-12
SpringBoot實現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼
在實際項目開發(fā)過程中,我們經(jīng)常將返回數(shù)據(jù)的基本形式統(tǒng)一為JSON格式的數(shù)據(jù)。但項目可能是由很多人開發(fā)的,所以我們最好將返回的結(jié)果統(tǒng)一起來。本文介紹了SpringBoot實現(xiàn)統(tǒng)一封裝返回前端結(jié)果集的示例代碼,需要的可以參考一下2022-06-06
使用SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題
這篇文章主要介紹了SpringBoot中web項目推薦目錄結(jié)構(gòu)的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01

