В нашей инфраструктуре есть множество небольших Java-проектов, созданных Maven2. У каждого проекта есть свой pom.xml, который в конечном итоге наследуется от родительского pom-мастера нашей единственной компании.
Недавно мы начали добавлять небольшие профили в наш родительский pom, отключенные по умолчанию, которые, когда они включены, выполняют один плагин обычным образом.
Примеры:
- Профиль 'sources' запускает maven-source-plugin для создания jar исходников проекта.
- Профиль 'clover' запускает maven-clover2-plugin для создания отчета Clover. Он также включает наш лицензионный файл Clover, поэтому его не нужно повторно указывать в дочерних проектах.
- Профиль 'fitnesse' запускает fitnesse-maven-plugin для запуска фитнес-тестов, связанных с проектом. Он содержит хост и порт фитнес-сервера, а также другую информацию, которую не нужно повторять.
Это используется для указания сборок на нашем сервере CI, например:
mvn test -P clover
mvn deploy site-deploy -P fitnesse,sources
и так далее.
На данный момент это, кажется, обеспечивает удобный набор дополнительных функций.
Однако есть ли какие-либо опасности или подводные камни в продолжении этого подхода (очевидные или нет)? Может ли этот тип функциональности быть лучше реализован или выражен другим способом?