Идея Markus Lux также может быть реализована с помощью решения Maven2 с управлением профилями:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
</plugin>
</plugins>
...
</build>
<profiles>
<profile>
<id>env-foo1</id>
<!-- Activated when -Denv=foo1 is given as parameter. -->
<activation>
<property>
<name>env</name>
<value>foo1</value>
</property>
</activation>
<properties>
<deploy.env>xxx</deploy.env>
<tomcat.manager>http://foo1/manager</tomcat.manager>
<tomcat.manager.username>foo</tomcat.manager.username>
<tomcat.manager.password>bar</tomcat.manager.password>
</properties>
</profile>
<profile>
<id>env-foo2</id>
<!-- Activated when -Denv=foo2 is given as parameter. -->
<activation>
<property>
<name>env</name>
<value>foo2</value>
</property>
</activation>
<properties>
<deploy.env>dev</deploy.env>
<tomcat.manager>http://foo2/manager</tomcat.manager>
<tomcat.manager.username>foo</tomcat.manager.username>
<tomcat.manager.password>bar</tomcat.manager.password>
</properties>
</profile>
...
</profiles>
Тогда вам просто нужно будет выполнить X раз команду mvn с соответствующим параметром ( -Denv = foo1 , -Denv = foo2 , ...)
<Ч />
Кроме того, вы можете усовершенствовать это решение, используя функцию Matrix сервера непрерывной интеграции Hudson . Я дал краткое объяснение этой функции здесь .
По сути, вы просто определяете «нормальное» задание Maven2 в Hudson, а с помощью функции Matrix вы можете попросить Hudson запустить это задание несколько раз, по одному для каждой среды. Другими словами, вы создаете задание Hudson, а затем определяете «ось среды» со всеми возможными значениями параметра env :
Затем Hudson создаст приложение с помощью команды mvn и с параметром -Denv = foo1 . После завершения сборки будет построено то же приложение, но с параметром -Denv = foo2 и т. Д. *
Таким образом, Hudson развернет ваше приложение в любой среде ...
Я надеюсь, что мое решение поможет вам достичь ваших целей ...