使用Maven程序集插件检测丢失的包含文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven程序集插件检测丢失的包含文件相关的知识,希望对你有一定的参考价值。
我使用Maven程序集插件使用以下描述符构建我的项目:
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>src</id>
<formats>
<format>tar.gz</format>
<format>tar.bz2</format>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.basedir}</directory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
<include>pom.xml</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
<fileSet>
<directory>${project.basedir}/src</directory>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>
</fileSets>
</assembly>
现在,如果缺少一个include(假设我在示例中没有任何“README *”或“pom.xml”文件),我没有任何错误。
如果缺少包含的文件,是否有办法在构建期间获得错误或警告?
答案
为此,您需要有一个maven enforcer插件。
此规则检查指定的文件列表是否存在。
你需要这样的东西。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M2</version>
<executions>
<execution>
<id>enforce-license</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireFilesExist>
<files>
<file>${project.basedir}/README*</file>
<file>${project.basedir}${project.basedir}/LICENSE*</file>
<file>${project.basedir}${project.basedir}/NOTICE*</file>
<file>${project.basedir}${project.basedir}/pom.xml</file>
</files>
</requireFilesExist>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
另见:maven enforcer和requireFilesExist
以上是关于使用Maven程序集插件检测丢失的包含文件的主要内容,如果未能解决你的问题,请参考以下文章
Jacoco和Tycho surefire的Eclipse RCP插件代码介绍
如何抑制 maven 程序集插件跳过已添加的文件?还是允许覆盖?