2017-02-06 4 views
2

Строительство в maven assembly, я оставил что-то вроде этого:Maven сборки, потерпеть неудачу, если файл не найден

<fileSets> 
    <fileSet> 

     <directory>${project.basedir}</directory> 
     <outputDirectory>/</outputDirectory> 

     <includes> 

      <include>LICENSE.md</include> 
      ... 

Как я могу обеспечения соблюдения существование LICENSE.md?

В данном примере предупреждения не выдаются, если этот файл отсутствует, в идеале я хотел бы сбой сборки.

ответ

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 в сборке, так что сборка завершится неудачно, если файл отсутствует.

+0

Huzzah! Именно то поведение, которое я ищу. Благодаря! –

0

Я думаю, что у вас есть другие средства для обеспечения присутствия файла (maven-ant plugin, maven enforcer). Строгая фильтрация недоступна для набора файлов. Он доступен только для dependencyset. См. this соответствующей почтовой цепочке.

Смежные вопросы