maven打包的时候会忽略掉空文件夹,怎样配置让它不忽略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven打包的时候会忽略掉空文件夹,怎样配置让它不忽略相关的知识,希望对你有一定的参考价值。

这个是我的目录结构,红框的地方是我创建的空文件夹,我想在打包的时候把这个空文件夹的目录结构都打包过去,但是实际发现红框的文件夹都没有生成,请教大神该如何配置让maven使用package打包命令的时候能够打包进去

我先上代码,主要 是 maven-war-plugin 有个includeEmptyDirectories参数 ,

 

注意:这个参数maven-war-plugin 2.4 的版本才支持

 

 

 <build>
  <plugins>
    
   <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
     <includeEmptyDirectories>true</includeEmptyDirectories>
    </configuration>
   </plugin>
  </plugins>
 </build>

参考技术A 看看能不能加参数吧。以前arj压缩的时候能加很多参数。其中一个就是连同空文件夹一起压缩。追问

那么应该如何进行配置呢

maven根据不同的environment打包配置

一、maven根据不同的environment打包配

一个项目里总会有很多配置文件。而且一般都会有多套环境。开发的、测试的、正式的。而在这些不同的环境这些配置的值都会不一样。
比如mail的配置、服务的url配置这些都是很常见的。
所以在打包的时候就要根据environment来选不同的值或者配置文件。
比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。 |-- resources | |-- dev | |-- test | |-- pro 在pom.xml里定义一个打包用的profile变量
 1 <!-- 开发 -->
 2 <profile>
 3     <id>dev</id>
 4     <properties>
 5         <package.environment>dev</package.environment>
 6     </properties>
 7 </profile>
 8 <!-- 测试 -->
 9 <profile>
10     <id>test</id>
11     <properties>
12         <package.environment>test</package.environment>
13     </properties>
14 </profile>
15 <!-- 生产 -->
16 <profile>
17     <id>pro</id>
18     <properties>
19         <package.environment>pro</package.environment>
20     </properties>
21 </profile>
pom.xml引用profile变量
 1 <plugin>
 2      <artifactId>maven-war-plugin</artifactId>
 3      <version>3.0.0</version>
 4      <configuration>
 5          <warSourceDirectory>src/main/webapp</warSourceDirectory>
 6          <archive>
 7              <addMavenDescriptor>false</addMavenDescriptor>
 8          </archive>
 9          <!--<warName>app</warName>-->
10          <webResources>
11              <resource>
12                <directory>src/main/resources/config/${package.environment}</directory>
13                  <targetPath>WEB-INF/classes/config</targetPath>
14                  <filtering>true</filtering>
15              </resource>
16         </webResources>
17     </configuration>
18</plugin>
org.apache.maven.plugins插件<webResources>动态指定参数${package.environment}对应文件夹下的文件到WEB-INF/classes下
注意
:参数<filtering>true</filtering>,一定要设置成true这样才会用对应environment目录下的配置文件覆盖原来的

二、结合idea打包命令

 

 1.本地开发打包命令

clean package -DskipTests -Pdev

2.生产环境打包命令

clean package -DskipTests -Ppro

 

以上是关于maven打包的时候会忽略掉空文件夹,怎样配置让它不忽略的主要内容,如果未能解决你的问题,请参考以下文章

maven打包额外的资源文件

maven项目啥时候用到编译,打包

Git 忽略和 Maven 目标

关于使用maven打包如何聚合资源文件

请问maven工程jar包,war包,pom打包,都是怎么定的?

maven根据不同的environment打包配置