maven 程序集,如果找不到文件则失败
maven assembly, fail if file not found
构建 maven assembly,我留下了这样的东西:
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>LICENSE.md</include>
...
How can I enforce the existence of LICENSE.md
?
在给定的示例中,如果此文件不存在,则不会抛出警告,理想情况下,我希望构建失败。
我认为您使用了其他方法来确保文件存在(maven-ant 插件,maven enforcer). Strict filtering is not available for fileset. It is only available for dependencyset. See this 相关邮件链。
每当您想根据不同的约束使构建失败时,您应该查看 Maven Enforcer Plugin。这个插件允许配置被检查的规则,如果其中任何一个没有通过,就会导致构建失败。
有一个 built-in 规则来检查文件是否存在,称为 requireFilesExist
:
This rule checks that the specified list of files exist.
因此,如果文件 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 在构建阶段运行,因此如果文件不存在,构建将很快失败。
构建 maven assembly,我留下了这样的东西:
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>LICENSE.md</include>
...
How can I enforce the existence of
LICENSE.md
?
在给定的示例中,如果此文件不存在,则不会抛出警告,理想情况下,我希望构建失败。
我认为您使用了其他方法来确保文件存在(maven-ant 插件,maven enforcer). Strict filtering is not available for fileset. It is only available for dependencyset. See this 相关邮件链。
每当您想根据不同的约束使构建失败时,您应该查看 Maven Enforcer Plugin。这个插件允许配置被检查的规则,如果其中任何一个没有通过,就会导致构建失败。
有一个 built-in 规则来检查文件是否存在,称为 requireFilesExist
:
This rule checks that the specified list of files exist.
因此,如果文件 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 在构建阶段运行,因此如果文件不存在,构建将很快失败。