在对项目进行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>
打包结果完全符合预期!