• 关于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>
    

    打包结果完全符合预期!

  • 相关阅读:
    jquery的each()详细介绍【转】
    牛客-小w的a=b问题
    HDU-6707-Shuffle Card(很数据结构的一道题)
    HDU-6672-Seq
    牛客-随机数
    牛客-小阳的贝壳
    HDU-4417-Super Mario
    牛客-Corn Fields
    HDU-2665-Kth number
    线段树模板
  • 原文地址:https://www.cnblogs.com/netWild/p/13236082.html
Copyright © 2020-2023  润新知