Я пытаюсь развернуть свое веб-приложение на нескольких серверах, работающих под управлением Tomcat, с помощью tomcat7-maven-plugin.
Вот часть моего 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 серверах разработки, а при активации другого оно развертывает приложение на 2 производственных серверах.
Итак, когда я запускаю команду:
mvn tomcat7:redeploy -Dproduction
идет на рабочие серверы, и когда я запускаю
mvn tomcat7:redeploy
идет к серверам разработчиков.
Я успешно создал профили, и, выполнив эти команды, он выбирает правильный и запускает его.
Проблема возникает, когда я определяю несколько <executions>
с разными тегами <configuration>
, maven игнорирует эти настройки и запускает конфигурацию по умолчанию.
Это работает, только если я запускаю mvn tomcat7:redeploy@localhost
или mvn tomcat7:redeploy@devserver
и нацеливаюсь на выполнение напрямую по Id.
Очевидно, что цель состоит в том, чтобы запустить всего две команды: mvn tomcat7:redeploy -Dproduction
или mvn tomcat7:redeploy
, чтобы развернуть приложение на всех серверах, будь то производство или разработка.
Можно ли добиться этого с помощью казней или есть какой-то другой способ?