關於Maven打包(Jar)時文件過濾的正確做法


在對項目進行maven打包時,某些特殊文件的過濾一直存在問題,終於有時間搞清楚了。

一般在項目中,分為以下兩個部分:

  • 代碼文件:src/main/java

默認打包規則是僅包含 *.class 字節碼文件,忽略其他格式。

  • 資源文件:src/main/resources

默認打包規則是包含全部文件。

之前的做法

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<version>3.1.0</version>
	<excludes>
		<exclude>**/*.properties</exclude>
		<exclude>**/*.psd</exclude>
	</excludes>
</plugin>

可以看到是利用maven-jar-plugin插件來進行文件過濾的
實際上也確實達到了預期效果

但如果代碼文件中也想包含除了class以外的其他文件,嘗試添加 時,卻意外的發現連 class 文件都被忽略了,多次嘗試也未成功。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<version>3.1.0</version>
	<excludes>
		<exclude>**/*.properties</exclude>
		<exclude>**/*.psd</exclude>
	</excludes>
	<includes>
		<include>**/*.jw</include>
		<include>**/*.json</include>
	</includes>
</plugin>

正確的做法

利用 resources 標簽:

<resources>
	<resource>
		<directory>src/main/java</directory>
		<includes>
			<include>**/*.jw</include>
			<include>**/*.json</include>
		</includes>
	</resource>
	<resource>
		<directory>src/main/resources</directory>
		<excludes>
			<exclude>**/*.properties</exclude>
			<exclude>**/*.psd</exclude>
		</excludes>
	</resource>
</resources>

打包結果完全符合預期!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM