запуск нескольких выполнений maven с различной конфигурацией. maven игнорирует конфигурацию конфигурации, если не указан идентификатор - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь развернуть свое веб-приложение на нескольких серверах, работающих под управлением 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, чтобы развернуть приложение на всех серверах, будь то производство или разработка.

Можно ли добиться этого с помощью казней или есть какой-то другой способ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...