запускать интеграционные тесты из плагина maven failsafe для профиля, когда я устанавливаю параметр из командной строки, например -DrunIT=true

Я использую maven 3.0.4. Я хочу, чтобы подключаемый модуль отказоустойчивости и причала запускался (запускал только интеграционные тесты) только тогда, когда я устанавливаю какое-либо свойство при выполнении команды maven, например, mvn verify -Pstage -DrunIT=true

Мой сценический профиль в pom выглядит так.

<profile>
        <id>stage</id>
        <activation>
            <activeByDefault>false</activeByDefault>

        </activation>
        <build>
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.16</version>
                    <executions>
                        <execution>
                            <id>integration-test</id>
                            <goals>
                                <goal>integration-test</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>verify</id>
                            <goals>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>


                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>maven-jetty-plugin</artifactId>
                    <version>6.1.16</version>
                    <dependencies>
                        <dependency>
                            <groupId>javax.servlet</groupId>
                            <artifactId>servlet-api</artifactId>
                            <version>2.5</version>
                        </dependency>

                        <dependency>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                            <version>4.11</version>
                        </dependency>
                        <dependency>
                            <groupId>org.hamcrest</groupId>
                            <artifactId>hamcrest-all</artifactId>
                            <version>1.3</version>
                        </dependency>

                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>5.1.6</version>
                        </dependency>

                        <dependency>
                            <groupId>xmlunit</groupId>
                            <artifactId>xmlunit</artifactId>
                            <version>1.5</version>
                        </dependency>



                    </dependencies>
                    <configuration>
                        <scanIntervalSeconds>10</scanIntervalSeconds>
                        <stopPort>8005</stopPort>
                        <stopKey>STOP</stopKey>
                        <contextPath>/</contextPath>
                    </configuration>
                    <executions>
                        <execution>
                            <id>start-jetty</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>run-exploded</goal>
                            </goals>
                            <configuration>
                                <scanIntervalSeconds>0</scanIntervalSeconds>
                                <daemon>true</daemon>
                            </configuration>
                        </execution>
                        <execution>
                            <id>stop-jetty</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>stop</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>


            </plugins>
        </build>
    </profile>

person atul.mishra    schedule 05.03.2014    source источник
comment
Почему профиля недостаточно?   -  person khmarbaise    schedule 05.03.2014
comment
создание нового профиля потребует много переделок в моем проекте. Мне нужно найти способ активировать или деактивировать плагин на основе переданного аргумента. Могу ли я создать плагин maven, который каким-то образом сделает это?   -  person atul.mishra    schedule 06.03.2014


Ответы (1)


Ну и в <activation/> нужно определить свойство, которое вы видимо пропустили:

...
<profile>
    <id>stage</id>
    <activation>
        <activeByDefault>false</activeByDefault>

        <property>
            <name>runIT</name>
            <!-- I think you can safely skip the value part below
                 and just pass in -DrunIT. -->
            <value>true</value>
        </property>
    </activation>
    ...
</profile>
person carlspring    schedule 05.03.2014
comment
Спасибо за ваш ответ, но это активирует или запустит профиль. С этим mvn verify -Pstage станет таким же, как mvn verify -DrunIT=true , но я хочу активировать или деактивировать плагин в профиле на основе переданного аргумента. Таким образом, mvn verify -Pstage -DrunIT=true запустит профиль этапа с плагинами maven failsafe и maven jetty, и если для runIT установлено значение false , оба плагина не будут работать. Я не могу создать два разных профиля, в одном будут плагины, а в другом нет. - person atul.mishra; 06.03.2014