建立一个maven assembly,我留下了类似的东西:
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>LICENSE.md</include>
...
如何强制存在
LICENSE.md
?
在给定的示例中,如果此文件不存在,则不会引发警告,理想情况下,我希望构建失败。
答案 0 :(得分:2)
每当您想根据不同的约束使构建失败时,您应该查看Maven Enforcer Plugin。此插件允许配置已检查的规则,如果其中任何一个未通过,则会使构建失败。
有一个内置规则来检查是否存在名为requireFilesExist
的文件:
此规则检查指定的文件列表是否存在。
因此,如果文件LICENSE.md
不存在,为了使构建失败,您可以:
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-license</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireFilesExist>
<files>
<file>${project.basedir}/LICENSE.md</file>
</files>
</requireFilesExist>
</rules>
</configuration>
</execution>
</executions>
</plugin>
默认情况下,这会在构建中的validate
阶段which is the first phase invoked中运行,因此如果文件不存在,构建将快速失败。
答案 1 :(得分:0)
我认为您已经使用其他方法来确保文件存在(maven-ant插件,maven enforcer)。严格过滤不适用于文件集。它仅适用于依赖集。请参阅this相关邮件链。