我们使用maven 3.5.0和maven-war-plugin构建了一个Webapp。我们有很多叠加层,其中许多叠加层都有一个tests
目录,其中包含用于在开发环境中测试某些事物的JSP文件。我们不希望这些被包括在我们的战争中。
我们尝试了以下操作:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<overlays>...</overlays>
<warSourceExcludes>tests</warSourceExcludes>
</configuration>
</plugin>
这没有用,也没有几个configuration
的变体:
<packagingExcludes>tests</packagingExcludes>
和
<packagingExcludes>**/${project.artifactId}/tests/**</packagingExcludes>
这是由于我天真的滥用配置选项引起的,还是与叠加层的处理方式有关?
答案 0 :(得分:1)
您应该使用<excludes>..</excludes>
(请参阅https://maven.apache.org/plugins/maven-war-plugin/overlays.html)而不是<packagingExcludes>..</packagingExclude>
...
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<overlays>
<overlay>
<groupId>com.example.projects</groupId>
<artifactId>documentedprojectdependency</artifactId>
<excludes>
<exclude>WEB-INF/classes/images/sampleimage-dependency.jpg</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>
...
答案 1 :(得分:0)
dependentWarExcludes
元素用于消除tests
目录及其内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<overlays>...</overlays>
<dependentWarExcludes>tests/**</dependentWarExcludes>
</configuration>
</plugin>