使用Maven程序集插件检测丢失的包含文件

问题描述 投票:0回答:1

我使用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 maven-assembly-plugin
1个回答
1
投票

为此,您需要有一个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 enforcerrequireFilesExist

© www.soinside.com 2019 - 2024. All rights reserved.