maven-war-plugin:Maven打war包时,排除和包含指定文件或目录

简介: maven-war-plugin:Maven打war包时,排除和包含指定文件或目录


通过使用<packagingIncludes>和<packagingExcludes>配置参数,可以在WAR文件中包含或排除某些文件或者目录。

可以通过逗号分隔,配置多个文件或者目录路径。

使用**等通配符表示多个目录,使用*表示文件或目录名称的可选部分。

**:可以删除当前文件夹和文件夹里的内容


示例1:从WEB-INF / lib中排除所有JAR文件

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.2</version>
        <configuration>
          <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>


示例2:排除resource文件或者只包含Java文件

WEB程序结构如下:

使用以下配置,我们可以排除resource里的配置文件或者只包含Java文件

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.2.2</version>
  <configuration>
    <!--注意:这是打包后的路径-->
    <!--
      **:可以删除当前文件夹和文件夹里的内容
    -->
    <packagingExcludes>
      <!--排除resources下面的config文件中的properties文件-->
      <!--WEB-INF/classes/config/*.properties-->
      <!--排除resources下面的config文件和config里面的文件-->
      WEB-INF/classes/config/**
    </packagingExcludes>
    <!--只包含com和com下面的所有文件夹和文件【即,只打包Java文件】-->
    <!--<packagingIncludes>
      WEB-INF/classes/com/**
    </packagingIncludes>-->
  </configuration>
</plugin>


示例3:正则表达式排除文件

有时甚至这样的通配符还不够。在这些情况下,您可以使用%regex []语法的正则表达式。

在此示例中,我们要排除任何commons-logging和log4j JAR,但我们不希望排除log4j-over-slf4j JAR。

所以我们要排除log4j- <version> .jar,但保留log4j-over-slf4j- <version> .jar。

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.2.2</version>
  <configuration>
    <!--注意:这是打包后的路径-->
    <!--
      **:可以删除当前文件夹和文件夹里的内容
    -->
    <packagingExcludes>
      <!--排除resources下面的config文件中的properties文件-->
      <!--WEB-INF/classes/config/*.properties-->
      <!--排除resources下面的config文件和config里面的文件-->
      WEB-INF/classes/config/**
    </packagingExcludes>
    <!--只包含com和com下面的所有文件夹和文件【即,只打包Java文件】-->
    <!--<packagingIncludes>
      WEB-INF/classes/com/**
    </packagingIncludes>-->
  </configuration>
</plugin>

 



目录
相关文章
|
29天前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
1月前
|
Java Maven
maven打瘦包,且只打入部分想打入的依赖瘦包
maven打瘦包,且只打入部分想打入的依赖瘦包 设计 工程结构分析 环境管理 城市资源 安全工程 工程管理
53 10
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
111 8
|
1月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
79 3
|
2月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
79 1
|
2月前
|
Java Maven
用graalvm将maven项目打包成可执行文件
本文介绍了如何使用GraalVM将Maven项目打包成可执行文件,包括引入依赖和插件、编写代码、执行打包命令以及运行查看结果的完整过程。
176 0
用graalvm将maven项目打包成可执行文件
|
4月前
|
Java Maven Spring
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
|
5月前
|
Java Maven 开发者
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
51 0
|
6月前
|
Java 关系型数据库 MySQL
Maven如何快捷导入jar包
Maven如何快捷导入jar包
|
6月前
|
Java Maven
java运行jar包提示 “XXX中没有主清单属性”,配置maven插件
java运行jar包提示 “XXX中没有主清单属性”,配置maven插件