Обнаружение отсутствующего включенного файла с плагином сборки Maven - PullRequest
0 голосов
/ 25 февраля 2019

Я использую плагин сборки 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>

Теперь, если отсутствует одно включение (предположим, что у меня нет ни одного «README *» или «pom»).xml "в примере), у меня нет ошибок.

Есть ли способ получить ошибку или предупреждение во время сборки, если включенный файл отсутствует?

1 Ответ

0 голосов
/ 26 февраля 2019

Для этого вам понадобится подключаемый модуль Maven Enforcer.

Это правило проверяет, что указанный список файлов существует.

вам нужно что-то вродеthis.

<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

...