Подтвердить что ты не робот

Точка выполнения между пакетом подготовки и пакетом в процессе сборки Maven

Фаза package проекта с упаковкой war, готовит взорванную войну в папке target и упаковывает ее в окончательный war файл.

Можно ли внести некоторые изменения, отредактировать файлы, удалить файлы и т.д. между этапами prepare-package и package? Я ищу точку расширения (Maven execution-phase), где ресурсы уже скопированы и находятся в структуре взорванной войны.

  • [maven phase] Скопируйте ресурсы и взорвется до target/{finalName}.
  • [custom] Выполнение некоторых сложных пользовательских изменений (например, реализовано с помощью maven-antrun).
  • [фаза maven] Поместите измененный материал в окончательный war.

Я думал, что это возможно между фазами prepare-package и package. К сожалению, после prepare-package взорванная война не может быть изменена и упакована позже.

Можете ли вы дать мне подсказку, как этого добиться? Большое вам спасибо.

4b9b3361

Ответ 1

Эта конфигурация вызывает цель exploded в фазе prepare-package. Это дает вам возможность работать с взорванным военным каталогом в последующих определениях плагинов, например. maven-antrun.

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <version>2.1.1</version>
   <executions>
     <execution>
       <id>prepare-war</id>
       <phase>prepare-package</phase>
       <goals>
         <goal>exploded</goal>
       </goals>
     </execution>
   </executions>
</plugin>

Ответ 2

Мне кажется, что вы должны привязать задачу antrun к фазе подготовки пакета, потому что на этом этапе ресурсы уже обработаны, см. Lifecycle Reference.