天天看點

maven的pom.xml中resources标簽介紹

在開發maven項目時,一般都會把配置檔案放到src/main/resources目錄下,針對這個目錄,maven的resources對其進行單獨的配置。

這類的文章推薦看下這兩篇:

maven的pom.xml中resources标簽介紹 - 安小樂 - OSCHINA - 中文開源技術交流社群

maven的pom.xml中resources标簽介紹

https://my.oschina.net/anxiaole/blog/1613348Maven的pom.xml中resources标簽的用法_wenonepiece的部落格-CSDN部落格_pom.xml resources

maven的pom.xml中resources标簽介紹

https://blog.csdn.net/wenonepiece/article/details/112721380上述文章解答了我的大多數疑問,但依然有一些問題講的不清楚,故在此總結一下。

<build>
	<!-- maven對resources資源的配置,一個resources标簽下可以有多個resource标簽 -->
	<resources>
		<resource>
			<!--
				需要配置的原資源目錄,${basedir}和${project.basedir}變量均指項目根目錄。
				這裡的lib檔案夾,存在了項目依賴的三方jar和dll檔案
			-->
			<directory>${basedir}/src/main/resources/lib</directory>
			<!--
				目标目錄,即原資源目錄下的檔案編譯打包之後要放到哪裡去。
				預設路徑 target/classes/,路徑字首 target/classes/,也就是說如果配置的是BOOT-INF/lib/,最終結果為target/classes/BOOT-INF/lib/
			-->
			<targetPath>BOOT-INF/lib/</targetPath>
			<!-- 是否過濾,預設是false,這裡的過濾指的是,是否将原資源目錄下的配置檔案的${key}替換成對應的值 -->
			<filtering>true</filtering>
			
			<!--
				如果你覺得原資源目錄範圍太大,你可以通過includes标簽來具體指定需要哪些檔案,或者通過
				excludes标簽來具體指定需要排除那些檔案。兩個标簽都可以模糊比對
			-->
		</resource>
	</resources>
</build>
           

注意事項

當你使用<resources>标簽配置自定義的配置檔案時,可能會導緻application.yml等原本的springboot預設配置檔案不生效了。

例如,下面是我項目需要用到的配置

<resources>
	<resource>
		<directory>${project.basedir}/lib</directory>
		<targetPath>BOOT-INF/lib/</targetPath>
		<includes>
			<include>**/*.jar</include>
		</includes>
	</resource>

	<resource>
		<directory>${project.basedir}/lib</directory>
		<targetPath>../lib</targetPath>
	</resource>
</resources>
           

測試的時候發現,自己的外部依賴檔案是打包進去了,但是springboot自帶的yml配置檔案确不生效了。是以,在你配置自定義的檔案之後,别忘了系統自帶的配置檔案。

<resources>
	<resource>
		<directory>${project.basedir}/lib</directory>
		<targetPath>BOOT-INF/lib/</targetPath>
		<includes>
			<include>**/*.jar</include>
		</includes>
	</resource>

	<resource>
		<directory>${project.basedir}/lib</directory>
		<targetPath>../lib</targetPath>
	</resource>

	<resource>
		<directory>${basedir}/src/main/resources</directory>
	</resource>
</resources>