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>
    

    打包结果完全符合预期!

  • 相关阅读:
    php入门到精通(复习笔记)
    MySQL的基础(优化)3
    php之Apache压力测试
    DOS下常用命令
    php连接MySQL分析
    php-memcached详解
    php 四种基本排序算法
    MySQL的基础(优化)2
    SQL入门之集合操作
    SQL入门之多表查询
  • 原文地址:https://www.cnblogs.com/netWild/p/13236082.html
Copyright © 2011-2022 走看看