在對項目進行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以外的其他文件,嘗試添加
<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>
打包結果完全符合預期!