zoukankan      html  css  js  c++  java
  • 关于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>
    

    打包结果完全符合预期!

  • 相关阅读:
    java===单类设计模式之饿汉式与懒汉式
    java===数组工具类创建,并使用eclipse导出说明文档.html
    java===static关键字
    java===this关键字
    java=====二维数组应用
    java===算法思想锻炼
    【CSP-S 2019模拟】题解
    【CSP-S 2019模拟】题解
    【LOJ#2124】【HAOI2015】—树上染色(树形dp)
    【LOJ#2019】【AHOI / HNOI2017】—影魔(线段树+扫描线)
  • 原文地址:https://www.cnblogs.com/netWild/p/13236082.html
Copyright © 2011-2022 走看看