我正在尝试使用tomcat7-maven-plugin将我的web-app部署到运行Tomcat的多个服务器上。
以下是我的pom.xml
文档的一部分:
<profiles>
<profile>
<id>DevDeployment</id>
<activation>
<property>
<name>!production</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<executions>
<execution>
<id>localhost</id>
<configuration>
<source>1.8</source>
<target>1.8</target>
<url>http://127.0.01:8080/manager/text</url>
<server>TomcatServer</server>
<username>foo</username>
<password>boo</password>
</configuration>
</execution>
<execution>
<id>devserver</id>
<configuration>
<source>1.8</source>
<target>1.8</target>
<url>http://dev_server_ip:8080/manager/text</url>
<server>TomcatServer</server>
<username>foo</username>
<password>boo</password>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>ProductionDeployment</id>
<activation>
<property>
<name>production</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>production1</id>
<configuration>
<source>1.8</source>
<target>1.8</target>
<url>http://production1_ip:8080/manager/text</url>
<server>TomcatServer</server>
<username>foo</username>
<password>boo</password>
</configuration>
</execution>
<execution>
<id>production2</id>
<configuration>
<source>1.8</source>
<target>1.8</target>
<url>http://production2_ip:8080/manager/text</url>
<server>TomcatServer</server>
<username>foo</username>
<password>boo</password>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
我想要实现的是拥有两个不同的maven配置文件,首先运行它将应用程序部署到2个dev服务器,并通过激活其他服务器将应用程序部署到2个生产服务器。
所以当我运行命令时:
mvn tomcat7:redeploy -Dproduction
它进入生产服务器,当我运行
mvn tomcat7:redeploy
它转到开发服务器。
我已经成功制作了个人资料,并且通过运行这些命令,它选择了正确的命令并运行它。
当我使用不同的<executions>
标签定义多个<configuration>
时,会出现问题,maven会忽略这些配置并运行默认配置。
仅当我运行mvn tomcat7:redeploy@localhost
或mvn tomcat7:redeploy@devserver
并直接通过Id执行目标时才有效。
显然,目标是必须只运行2个命令:mvn tomcat7:redeploy -Dproduction
或mvn tomcat7:redeploy
,以便将应用程序部署到所有生产或开发服务器。
是否可以通过执行或其他方式实现?