Die Idee von Markus Lux kann auch mit dem Profil Management mit einer Maven2 Lösung, angewandt werden:
<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>
Dann werden Sie nur X-mal der mvn Befehl, mit dem angemessenen Parameter ausführen müssen (-Denv = foo1, -Denv = foo2, ...)
Zusätzlich dazu können Sie diese Lösung durch uns verbessern die Matrix-Funktion des Continuous Integration-Servers Hudson. Ich habe eine kurze Erklärung zu diesem Feature here gegeben.
Im Grunde definieren Sie einfach einen "normalen" Maven2-Job in Hudson, und mit der Matrix-Funktion können Sie Hudson bitten, diesen Job mehrmals auszuführen, einen pro Umgebung. In anderen Worten, erstellen Sie Ihre Hudson Job, und dann mit allen möglichen Wert für die env Parameter, um die "Umwelt-Achse" Sie definieren:
Hudson wird dann die Anwendung mit dem mvn Befehl bauen und mit dem Parameter -De nv = foo1 .Sobald diese Build fertig ist, wird es die gleiche Anwendung bauen, aber mit dem Parameter -Denv = foo2, und so weiter ...
Auf diese Weise wird Hudson Ihre Anwendung in allen Umgebungen einsetzen. ..
ich meine Lösung hoffen, dass Sie Ihre Ziele erreichen helfen ...
Heiliger Mist, das ist potentiell sehr nützlich, da Hudson genau das ist, was ich mit diesem Ziel anvisierte. – cgp
Lustig ist, das ist ähnlich dem, was der Link, den ich gab, nahelegte, aber es ist nicht genau klar. Ich kann es kaum erwarten, es auszuprobieren. – cgp
Gibt es eine Möglichkeit, dies zu tun, ohne Maven X mal aufrufen zu müssen? scheint mir, dass das erneute Erstellen nur zur Bereitstellung zeitaufwändig ist, und es kann zu inkonsistenten Bereitstellungen über einen Cluster hinaus führen, wenn während dieser Builds eine neue Änderung am Code vorgenommen wurde – maverick