Предотвратить выполнение по умолчанию безопасного загрузочного плагина Springboot - PullRequest
0 голосов
/ 28 мая 2019

У меня есть пример Java-приложения для Springboot.Это мой файл pom

    <groupId>com.sample.this</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>

<profiles>
    <profile>
        <id>profile1</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>id1</id>
                            <goals>
                                <goal>integration-test</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Когда я запускаю mvn verify -Pprofile1, отказоустойчивый плагин запускается дважды.

Вот журналы -

[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (default) @ junit.example ---
.
.
.
[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (id1) @ junit.example ---

Когда я удаляю родительский pom из стартовой пружины, тогда отказоустойчивый плагин запускается один раз, как и ожидалось.Вот этот журнал -

[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (id1) @ junit.example ---

Итак, Springboot запускает свой отказоустойчивый плагин по умолчанию в фазе интеграционного тестирования, если он не находит его в моем pom.

Я не могу добавить шаг выполнения по умолчанию в моем объявлении отказоустойчивого плагина.Как мне остановить Springboot, чтобы он перестал запускать свой отказоустойчивый плагин?

Я могу добавить это в свой pom, чтобы он заработал -

                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <skipITs>true</skipITs>
                        </configuration>
                    </execution>

Но это не выглядит интуитивно понятным.

Есть ли какой-нибудь другой способ?

Я не хочу добавлять плагин springboot в мой файл pom

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Пожалуйста, проверьте следующее. Здесь выполнение по умолчанию было отключено:

     <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>

    <profiles>
        <profile>
            <id>profile1</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>id1</id>
                                <goals>
                                    <goal>integration-test</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

0 голосов
/ 30 мая 2019

Следующим может быть решение, при котором удаляются теги groupId и id выполнения:


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>

    <profiles>
        <profile>
            <id>profile1</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

Когда mvn verify -Pprofile1 выполняется с вышеуказанными изменениями, то следующий результат:


[INFO] ------------------------------------------------------------------------
[INFO] Building test 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-failsafe-plugin:2.22.1:integration-test (default) @ test ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-failsafe-plugin:2.22.1:verify (default) @ test ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

...