Maven Создание нескольких профилей за один раз
Наша политика заключается в создании только 1 развертываемой банки. все конфигурации для конкретных сред хранятся отдельно, и мы собираем их все вместе сразу. поэтому в рамках нашего текущего процесса Ant у нас есть файл свойств для каждой среды, цикл по ним и создание набора файлов конфигурации для каждой среды.
В моем текущем POM XML я могу построить только один профиль, предоставленный в командной строке. Можно ли достичь через Maven?
Вот некоторые из соответствующих частей POM.xml
<!-- Define profiles here and make DEV as default profile -->
<profiles>
<!-- dev Profile -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- qa Profile -->
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<!-- prod Profile -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>
...
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<filters>
<filter>env/${env}.properties</filter>
</filters>
<outputDirectory>${project.build.directory}/config/${env}
</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/src/main/config/default
</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
.....
Спасибо, Прабхджот
1 ответ
Maven не похож на муравья. С муравьем вы можете делать то, что хотите, когда хотите. В maven существует четкий и документированный жизненный цикл сборки, и он нацелен на сборку одного компонента (и, возможно, наложение других артефактов на сборку).
Однако вы планируете создать один компонент несколько раз, но с разными параметрами. Это не вписывается в жизненный цикл Maven. Так что вам нужно будет заставить некоторый внешний процесс выполнить итерацию и повторно вызывать maven с различными параметрами.
Классический способ сделать это - использовать сценарий оболочки, но вы также можете использовать Maven Invoker для запуска отдельного процесса из контекста Java или Maven.