Могу ли я использовать плагин Maven Cargo для развертывания WAR на 2 разных серверах (этапы производства и разработки)?
У меня есть проект с конфигурацией плагина Maven Cargo, показанной ниже. Когда я бегу mvn cargo:redeploy
развертывает текущую версию приложения на сервере по адресу AAA.BBB.CCC.DDD
,
Теперь я хочу добавить второй сервер, скажем EEE.FFF.GGG.HHH
, EEE.FFF.GGG.HHH
будет производственным сервером и AAA.BBB.CCC.DDD
- стадия разработки / тестирования.
Можно ли использовать mvn cargo:redeploy
развернуть приложение на разных серверах (производство и тестирование, EEE.FFF.GGG.HHH
а также AAA.BBB.CCC.DDD
) Если да, как мне изменить конфигурацию плагина Cargo ниже?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>my-product</artifactId>
<packaging>war</packaging>
<version>[...]</version>
<name>my-product</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<powermock.version>1.5</powermock.version>
</properties>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>user name</cargo.remote.username>
<cargo.remote.password>password</cargo.remote.password>
<cargo.hostname>AAA.BBB.CCC.DDD</cargo.hostname>
<cargo.protocol>http</cargo.protocol>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<!-- Deployer configuration -->
<deployer>
<type>remote</type>
</deployer>
<deployables>
<deployable>
<groupId>com.mycompany</groupId>
<artifactId>my-product</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
1 ответ
Как указано @wemu, вы можете поместить много исполнений в конфигурацию вашего плагина следующим образом:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<type>remote</type>
</container>
<!-- Deployer configuration -->
<deployer>
<type>remote</type>
</deployer>
<deployables>
<deployable>
<groupId>com.mycompany</groupId>
<artifactId>my-product</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
<executions>
<!-- First execution to deploy on AAA.BBB.CCC.DDD -->
<execution>
<id>deploy1</id>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>user name 1</cargo.remote.username>
<cargo.remote.password>password 1</cargo.remote.password>
<cargo.hostname>AAA.BBB.CCC.DDD</cargo.hostname>
<cargo.protocol>http</cargo.protocol>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
</execution>
<!-- Second execution to deploy on EEE.FFF.GGG.HHH -->
<execution>
<id>deploy2</id>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>user name 2</cargo.remote.username>
<cargo.remote.password>password 2</cargo.remote.password>
<cargo.hostname>EEE.FFF.GGG.HHH</cargo.hostname>
<cargo.protocol>http</cargo.protocol>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
</execution>
</executions>
</plugin>
И вы даже можете объединить некоторые элементы конфигурации за пределами executions
вот так, если вам нужно добавить больше исполнений, вам просто нужно изменить пароль пользователя и IP-адрес:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<type>remote</type>
</container>
<!-- Common configuration -->
<configuration>
<type>runtime</type>
<properties>
<cargo.protocol>http</cargo.protocol>
<cargo.servlet.port>8080</cargo.servlet.port>
</properties>
</configuration>
<!-- Deployer configuration -->
<deployer>
<type>remote</type>
</deployer>
<deployables>
<deployable>
<groupId>com.mycompany</groupId>
<artifactId>my-product</artifactId>
<type>war</type>
</deployable>
</deployables>
</configuration>
<executions>
<!-- First execution to deploy on AAA.BBB.CCC.DDD -->
<execution>
<id>deploy1</id>
<configuration>
<properties>
<cargo.remote.username>user name 1</cargo.remote.username>
<cargo.remote.password>password 1</cargo.remote.password>
<cargo.hostname>AAA.BBB.CCC.DDD</cargo.hostname>
</properties>
</configuration>
</execution>
<!-- Second execution to deploy on EEE.FFF.GGG.HHH -->
<execution>
<id>deploy2</id>
<configuration>
<properties>
<cargo.remote.username>user name 2</cargo.remote.username>
<cargo.remote.password>password 2</cargo.remote.password>
<cargo.hostname>EEE.FFF.GGG.HHH</cargo.hostname>
</properties>
</configuration>
</execution>
</executions>
</plugin>