Maven 解決 war 包使用快照版依賴時的版本重複問題

問題描述

<packing>war</packing> 的項目中,有類似下面快照版的依賴:

<dependency>
    <groupId>com.company</groupId>
    <artifactId>sale</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

這種依賴在打包 war 的時候,經常在 WEB-INF/lib 目錄下面發現類似的 jar 包:

  • sale-1.0.0-SNAPSHOT.jar
  • sale-1.0.0-20190419.080114-12.jar

如果 jar 包有 spring 需要掃描的資源文件或者 Bean,就會因爲重複導致啓動失敗。

解決辦法

根據上述問題,通過配置 maven war 插件排除帶日期後綴的 jar 包即可。

配置如下:

<plugin>
	<artifactId>maven-war-plugin</artifactId>
	<version>2.2</version>
	<configuration>
		<packagingExcludes>%regex[WEB-INF/lib/.*-\d{8}.\d{6}-?\d*.jar]</packagingExcludes>
	</configuration>
</plugin>

通過正則匹配日期後綴的 jar 包進行排除,這樣就能避免重複的 jar 包了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章