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 打包插件,默認(rèn)是不會將 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
配置可以對資源文件進(jìn)行篩選,常見配置如下:
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>static/**</exclude> <exclude>*.yml</exclude> </excludes> </resource> </resources>
該方式會直接影響編譯時資源文件的處理過程,即 target 目錄下的 classes 目錄中就不包括指定文件,從而導(dǎo)致本地運(yùn)行時缺少配置文件,所以開發(fā)期間不建議用這種方式。
復(fù)制粘貼的原則
想起以前看到的一段經(jīng)典話語:
我從互聯(lián)網(wǎng)上得到的最好的經(jīng)驗之一,就是永遠(yuǎn)不要復(fù)制和粘貼不是自己編寫的代碼。如果你一定要復(fù)制,那就照著它逐字輸入,逼著自己思考,這些代碼實際上是什么意思。
除了代碼需要復(fù)制粘貼,平時文檔編寫時也免不了拿舊文檔做模板。
word 文檔編寫過程中,如果內(nèi)容是復(fù)制、粘貼的,我的經(jīng)驗是,完成后必做幾項檢查:
標(biāo)題:檢查文檔中的標(biāo)題、系統(tǒng)名稱是否更正為目標(biāo)文檔的內(nèi)容。目錄更正:文檔頁碼變化后,必須重新生成目錄與之對應(yīng)。修改內(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-11Java實現(xiàn)企業(yè)微信消息推送功能的詳細(xì)步驟
這篇文章主要介紹了Java實現(xiàn)企業(yè)微信消息推送功能,本文圖文實例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例
這篇文章主要介紹了Java高并發(fā)編程之CAS實現(xiàn)無鎖隊列代碼實例,在多線程操作中,我們通常會添加鎖來保證線程的安全,那么這樣勢必會影響程序的性能,那么為了解決這一問題,于是就有了在無鎖操作的情況下依然能夠保證線程的安全,需要的朋友可以參考下2023-12-12SpringBoot實現(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)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01