Maven2:排除战争目录
-
04-10-2019 - |
题
我试过 这 从我的战争文件中排除整个目录($ {基础}/src/main/webapp/webscripts),但失败了。怎么了?
这行不通:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/webscripts</directory>
<excludes>
<exclude>**/*.*</exclude>
</excludes>
</resource>
</webResources>
</configuration>
这个也是:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<excludes>
<exclude>**/webscripts</exclude>
</excludes>
</resource>
</webResources>
</configuration>
有人可以帮忙吗?
解决方案
您的两个解决方案都无济于事,因为它们会添加一个额外的资源,然后停用。 WebApp源文件夹默认情况下复制,没有资源机制。
停用部分的机制是通过 <warSourceExcludes>
参数,这样:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warSourceExcludes>webscripts/**</warSourceExcludes>
</configuration>
</plugin>
其他提示
Warsourceexcludes 似乎并没有重命名 包装量表.
Warsourceexcludes: :逗号分开的令牌列表在复制Warsourcedirectory的内容时要排除。
包装量表: :逗号分开的令牌清单要在包装前排除在战争之外。此选项可用于实施瘦战用例。
有很大的区别: 包装量表, ,令牌完全排除在最终战争档案中。和 Warsourceexcludes, ,将战争目录复制到战争文件中时,令牌只是被忽略。结果,如果令牌存在于 WebAppDirectory 例如,使用时不会忽略它们 Warsourceexcludes 但会在使用时 包装量表.
和一个工作语法示例:
<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>
在2.1-Alpha-1版本中,这被错误地命名为Warsourceexcludes。正确的参数是 包装量表
用法的示例(不包括WAR中的Web-Inf/ Stat/ statics/文件夹):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>searchservice-web</warName>
<packagingExcludes>WEB-INF/statics/</packagingExcludes>
</configuration>
</plugin>
在删除源文件的情况下,我在maven中使用了以下配置
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>
eb-app/app/**,eb-app/node_modules/**,eb-app/public/**,eb-app/server/**,eb-app/tests/**,eb-app/tmp/**,eb-app/vendor/**,eb-app/*
</packagingExcludes>
</configuration>
</plugin>
有一个场景,我不得不排除两个文件夹,可以匹配 *scripts
他们在资源文件夹中。第一个混乱是是否提供排除价值为 src/main/resources/*scripts
或AS WEB-INF/classes/*scripts
, ,即预汇编结构。
提供很重要 /**
要使整个目录被排除在战争文件之外。就我而 *scripts/**
.
这是有效的最终配置:
<packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>