您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)maven打包資源文件需要注意的問題有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
我寫這篇博客的目的是想讓大家了解一些 maven 項(xiàng)目的結(jié)構(gòu)以及打包后是什么樣子的,方便大家在實(shí)際項(xiàng)目中去排查問題。比如:我明明在 src/main/java 下把 mybatis 的 xml 寫上了,為什么項(xiàng)目報(bào)錯(cuò)讀不到呢?我配置了多種環(huán)境的配置文件,真正運(yùn)行時(shí)只會選擇一個(gè),所以不想把 src/main/resources 下的所以文件都打包到 target/classes 下,那該怎么辦?
構(gòu)建Maven項(xiàng)目的時(shí)候,如果沒有進(jìn)行特殊的配置,Maven會按照標(biāo)準(zhǔn)的目錄結(jié)構(gòu)查找和處理各種類型文件。 標(biāo)準(zhǔn)的目錄結(jié)構(gòu)如下:
src/main/java和src/test/java
這兩個(gè)目錄中的所有 .java 文件會分別在 comile 和 test-comiple 階段被編譯,編譯結(jié)果分別放到了target/classes 和 targe/test-classes 目錄中,但是這兩個(gè)目錄中的其他文件(比如:.xml 等)都會被忽略掉。
src/main/resouces和src/test/resources
這兩個(gè)目錄中的文件也會分別被復(fù)制到target/classes和target/test-classes目錄中。
target/classes
maven 打包插件默認(rèn)會把這個(gè)目錄中的所有內(nèi)容打入到 jar 包或者 war 包中。
maven resource 需要注意的問題。默認(rèn)情況下 maven 會根據(jù)標(biāo)準(zhǔn)路徑去把對應(yīng)的文件全部復(fù)制到 target 下。如果需要選擇性打包某些文件的話,就需要用到 resource。
下面以我創(chuàng)建的 maven 項(xiàng)目 mavenDemo 為例。
在 mavenDemo 項(xiàng)目的 pom.xml 中加入下面配置,目的是:只將 src/main/resources 下的后綴為 properties、xml 的文件打包到 classes 文件下。效果如圖 1。
使用 maven 的 clean package 命令就可以打包我們的項(xiàng)目到 target 文件下。注意一定要先執(zhí)行 maven 的 clean 命令,后執(zhí)行 package 命令。 直接使用 package 命令可能會存在緩存,使得我們看不到最新的修改。
<build> ....... <resources> <resource> <directory>src/main/resources</directory> <!-- 設(shè)置需要打包的文件,可以使用正則表達(dá)式 --> <includes> <include>**/*.yml</include> <include>**/*.xml</include> </includes> <!-- 開啟資源打包過濾 --> <filtering>true</filtering> </resource> </resources> ...... </build>
我們可以看到項(xiàng)目打包后,src/main/resources 下的 .sql 文件就被過濾掉了,只留下了 .yml、.xml 的配置文件。
看完上述內(nèi)容,你們對maven打包資源文件需要注意的問題有哪些有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。