Maven: используйте общие / общие плагины при работе с несколькими профилями
у меня есть проект, который использует несколько профилей. Каждый профиль использует следующие плагины:
- maven-компилятор-плагин
- maven-ресурсы-плагин
- maven-antrun-plugin
- maven-surefire-плагин
- maven-war-plugin
тот, который отмечен жирным шрифтом, является единственным плагином, где есть разница между профилями (различные файлы конфигурации будут скопированы с помощью antrun плагин.) Остальные 4 плагина настроены точно так же для всех профилей.
теперь вопрос: есть ли способ включить эти общие плагины только один раз, но по-прежнему использовать их для всех профилей по умолчанию?
что-то типа:
<shared><plugin1><plugin2>...</shared>
<profile><plugin3></profile>
<profile><plugin3></profile>
...
спасибо,
Stijn
2 ответов
если плагин используется всем профилем, просто определите его в <build>
детали :
<project>
...
<build>
<plugins>
Your shared plugins go here...
</plugins>
<profiles>
Definition of profiles...
</profiles>
</project>
таким образом, вы будете определять только плагин antrun в profiles
блок.
просто включите общие плагины в свой :
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>plugin1</artifactId>
</plugin>
...
</plugins>
</build>
добавить плагин в свой профиль:
<profiles>
<profile>
<id>...</id>
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>plugin3</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
вы также можете настроить один и тот же плагин по-разному в разных профилях таким образом:
<profiles>
<profile>
<id>profile1</id>
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>plugin1</artifactId>
<configuration>
<setting>value1</setting>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>profile2</id>
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>plugin1</artifactId>
<configuration>
<setting>value2</setting>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>