maven-surefire-pluginはpom.xmlのプラグインの順序を無視します

ターバノフ

マルチモジュールのMavenプロジェクトがあります。このプロジェクトには、自作のMavenプラグインとこ​​のプラグインのテストプロジェクトが含まれています。testmaven-surefire-pluginの前段階的にプラグインを実行したいpom.xmlのプラグインの後にmaven-surefire-pluginを配置します

<build>
    <plugins>
        <plugin>
            <groupId>com.my.group</groupId>
            <artifactId>validator-maven-plugin</artifactId>
            <version>${project.version}</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>validate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>test</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
</build>

ただし、maven-surefire-pluginは引き続き最初に実行されます。

[INFO] ------------------------------------------------------------------------
[INFO] Building PC_TEST_PROJECT 0.23-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ PC_TEST_PROJECT ---
[INFO] Deleting C:\validator\PC_TEST_PROJECT\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ PC_TEST_PROJECT ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\validator\PC_TEST_PROJECT\src\main\java
[INFO] skip non existing resourceDirectory C:\validator\PC_TEST_PROJECT\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ PC_TEST_PROJECT ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ PC_TEST_PROJECT ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ PC_TEST_PROJECT ---
[INFO] Compiling 1 source file to C:\validator\PC_TEST_PROJECT\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ PC_TEST_PROJECT ---
[INFO] Surefire report directory: C:\validator\PC_TEST_PROJECT\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.my.group.validator.MainTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.657 sec - in com.my.group.validator.MainTest

Results :

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] >>> validator-maven-plugin:0.23-SNAPSHOT:validate (default) > test @ PC_TEST_PROJECT >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ PC_TEST_PROJECT ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\validator\PC_TEST_PROJECT\src\main\java
[INFO] skip non existing resourceDirectory C:\validator\PC_TEST_PROJECT\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ PC_TEST_PROJECT ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ PC_TEST_PROJECT ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ PC_TEST_PROJECT ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ PC_TEST_PROJECT ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default) @ PC_TEST_PROJECT ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO]
[INFO] <<< validator-maven-plugin:0.23-SNAPSHOT:validate (default) < test @ PC_TEST_PROJECT <<<
[INFO]
[INFO] --- validator-maven-plugin:0.23-SNAPSHOT:validate (default) @ PC_TEST_PROJECT ---
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default) @ PC_TEST_PROJECT ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] validator-parent ................................... SUCCESS [  0.175 s]
[INFO] validator .......................................... SUCCESS [  6.038 s]
[INFO] validator-maven-plugin ............................. SUCCESS [  2.012 s]
[INFO] PC_TEST_PROJECT .................................... SUCCESS [  2.762 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.298 s
[INFO] Finished at: 2015-07-05T00:46:59+03:00
[INFO] Final Memory: 21M/51M
[INFO] ------------------------------------------------------------------------

maven-surefire-pluginの予想される動作ですか?プラグインの実行順序を変更するにはどうすればよいですか?

ステファン・ハイバーグ

これを試してください:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>ch.stefanheimberg.stackoverflow</groupId>
    <artifactId>stackoverflow-31225404</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>run-before-surfire</id>
                        <phase>test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message=" !!!! THIS SHOULD RUN BEFORE SUREFIRE !!!! " />
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-test</id>
                        <phase>none</phase>
                    </execution>

                    <execution>
                        <id>run-after-antrun</id>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

およびコンソール出力:

cd /Users/stefanheimberg/git/stackoverflow-31225404; JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home "/Applications/NetBeans/NetBeans 8.0.2.app/Contents/Resources/NetBeans/java/maven/bin/mvn" clean install
Scanning for projects...

Some problems were encountered while building the effective model for ch.stefanheimberg.stackoverflow:stackoverflow-31225404:jar:1.0-SNAPSHOT
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 31, column 21

It is highly recommended to fix these problems because they threaten the stability of your build.

For this reason, future Maven versions might no longer support building such malformed projects.


------------------------------------------------------------------------
Building stackoverflow-31225404 1.0-SNAPSHOT
------------------------------------------------------------------------

--- maven-clean-plugin:2.4.1:clean (default-clean) @ stackoverflow-31225404 ---
Deleting /Users/stefanheimberg/git/stackoverflow-31225404/target

--- maven-resources-plugin:2.5:resources (default-resources) @ stackoverflow-31225404 ---
[debug] execute contextualize
Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory /Users/stefanheimberg/git/stackoverflow-31225404/src/main/resources

--- maven-compiler-plugin:2.3.2:compile (default-compile) @ stackoverflow-31225404 ---
No sources to compile

--- maven-resources-plugin:2.5:testResources (default-testResources) @ stackoverflow-31225404 ---
[debug] execute contextualize
Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory /Users/stefanheimberg/git/stackoverflow-31225404/src/test/resources

--- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ stackoverflow-31225404 ---
No sources to compile

--- maven-antrun-plugin:1.3:run (run-before-surfire) @ stackoverflow-31225404 ---
Executing tasks
     [echo]  !!!! THIS SHOULD RUN BEFORE SUREFIRE !!!! 
Executed tasks

--- maven-surefire-plugin:2.10:test (run-after-antrun) @ stackoverflow-31225404 ---
No tests to run.
Surefire report directory: /Users/stefanheimberg/git/stackoverflow-31225404/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0


--- maven-jar-plugin:2.3.2:jar (default-jar) @ stackoverflow-31225404 ---
JAR will be empty - no content was marked for inclusion!
Building jar: /Users/stefanheimberg/git/stackoverflow-31225404/target/stackoverflow-31225404-1.0-SNAPSHOT.jar

--- maven-install-plugin:2.3.1:install (default-install) @ stackoverflow-31225404 ---
Installing /Users/stefanheimberg/git/stackoverflow-31225404/target/stackoverflow-31225404-1.0-SNAPSHOT.jar to /Users/stefanheimberg/.m2/repository/ch/stefanheimberg/stackoverflow/stackoverflow-31225404/1.0-SNAPSHOT/stackoverflow-31225404-1.0-SNAPSHOT.jar
Installing /Users/stefanheimberg/git/stackoverflow-31225404/pom.xml to /Users/stefanheimberg/.m2/repository/ch/stefanheimberg/stackoverflow/stackoverflow-31225404/1.0-SNAPSHOT/stackoverflow-31225404-1.0-SNAPSHOT.pom
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 1.888s
Finished at: Tue Jul 07 00:41:57 CEST 2015
Final Memory: 8M/155M
------------------------------------------------------------------------

ここでの秘訣は、最初にプラグイン(私のantrun内)をテストフェーズにバインドし、その後、「default-test」フェーズのバインドを解除することです。この後、maven-surfireをテストフェーズに再度バインドできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

maven-surefire-plugin ignores plugins order in pom.xml

分類Dev

maven-surefire-plugin による Maven プラグイン管理の奇妙な動作

分類Dev

maven-surefire-plugin、jacoco-maven-pluginはカバレッジを表示しません

分類Dev

Maven SurefireプラグインとMaven Failsafeプラグインの違いは何ですか?

分類Dev

maven-surefire-pluginまたはmaven-failsafe-pluginでセレンテストを実行していますか?

分類Dev

MavenプラグインSurefireはoutputDirectoryを受け入れません

分類Dev

Spring Bootがmaven-surefire-plugin ClassNotFoundException org.apache.maven.surefire.booter.ForkedBooterの実行に失敗する

分類Dev

maven-surefire-pluginはSpringBoot2.2.2.RELEASE以降では機能しません

分類Dev

maven surefireプラグイン-すべてのテストを順番に実行します

分類Dev

maven-surefire-pluginのforkedProcessTimeoutInSecondsのデフォルト値は何ですか?

分類Dev

ユニットテストを実行するには、Mavenのsurefireプラグインが必要ですか?

分類Dev

https://repo.maven.apache.org/maven2からorg.apache.maven.plugins:maven-surefire-plugin:pom:2.22.2を転送できない

分類Dev

Mavenのsurefireプラグインの出力テストの概要xml?

分類Dev

結果のmaven-surefire-report-pluginのアイコンを取得する方法

分類Dev

maven testng selenium javaでの並列実行を無効にする(surefireプラグインを使用-testng.xmlの順序に従って実行されません)

分類Dev

Maven Surefireプラグインの<include>ステートメントの形式は何ですか?

分類Dev

maven-surefire-report-plugin 2.8エラー:org.apache.maven.doxia.siterenderer.sink.SiteRendererSink.unknown

分類Dev

Mavenインポートから継承されたmaven-surefire-pluginのバージョンをオーバーライドします

分類Dev

Mavenは異なるプロファイルのプラグインの順序を変更します

分類Dev

JUnit 5:Maven SurefireプラグインでTestExecutionListenerを設定することは可能ですか?

分類Dev

目標org.apache.maven.plugins:maven-surefire-plugin:2.10:testの実行に失敗しました

分類Dev

目標org.apache.maven.plugins:maven-surefire-plugin:2.12.4:testの実行に失敗しました

分類Dev

目標org.apache.maven.plugins:maven-surefire-plugin:2.12.4:testの実行に失敗しました

分類Dev

maven-surefire-pluginダミー:dummy.jar:1.0がありません

分類Dev

maven surefire:実行中の現在のテストを印刷する方法は?

分類Dev

maven-surefire-pluginは単一のメソッドを実行しますが、クラスで失敗しました

分類Dev

Maven surefireプラグインが永久にハングする

分類Dev

Mavenのsurefireが実行されていないのはなぜですか?

分類Dev

MavenプロジェクトでJUnit5を使用するときにmaven-surefire-pluginが必須なのはなぜですか?

Related 関連記事

  1. 1

    maven-surefire-plugin ignores plugins order in pom.xml

  2. 2

    maven-surefire-plugin による Maven プラグイン管理の奇妙な動作

  3. 3

    maven-surefire-plugin、jacoco-maven-pluginはカバレッジを表示しません

  4. 4

    Maven SurefireプラグインとMaven Failsafeプラグインの違いは何ですか?

  5. 5

    maven-surefire-pluginまたはmaven-failsafe-pluginでセレンテストを実行していますか?

  6. 6

    MavenプラグインSurefireはoutputDirectoryを受け入れません

  7. 7

    Spring Bootがmaven-surefire-plugin ClassNotFoundException org.apache.maven.surefire.booter.ForkedBooterの実行に失敗する

  8. 8

    maven-surefire-pluginはSpringBoot2.2.2.RELEASE以降では機能しません

  9. 9

    maven surefireプラグイン-すべてのテストを順番に実行します

  10. 10

    maven-surefire-pluginのforkedProcessTimeoutInSecondsのデフォルト値は何ですか?

  11. 11

    ユニットテストを実行するには、Mavenのsurefireプラグインが必要ですか?

  12. 12

    https://repo.maven.apache.org/maven2からorg.apache.maven.plugins:maven-surefire-plugin:pom:2.22.2を転送できない

  13. 13

    Mavenのsurefireプラグインの出力テストの概要xml?

  14. 14

    結果のmaven-surefire-report-pluginのアイコンを取得する方法

  15. 15

    maven testng selenium javaでの並列実行を無効にする(surefireプラグインを使用-testng.xmlの順序に従って実行されません)

  16. 16

    Maven Surefireプラグインの<include>ステートメントの形式は何ですか?

  17. 17

    maven-surefire-report-plugin 2.8エラー:org.apache.maven.doxia.siterenderer.sink.SiteRendererSink.unknown

  18. 18

    Mavenインポートから継承されたmaven-surefire-pluginのバージョンをオーバーライドします

  19. 19

    Mavenは異なるプロファイルのプラグインの順序を変更します

  20. 20

    JUnit 5:Maven SurefireプラグインでTestExecutionListenerを設定することは可能ですか?

  21. 21

    目標org.apache.maven.plugins:maven-surefire-plugin:2.10:testの実行に失敗しました

  22. 22

    目標org.apache.maven.plugins:maven-surefire-plugin:2.12.4:testの実行に失敗しました

  23. 23

    目標org.apache.maven.plugins:maven-surefire-plugin:2.12.4:testの実行に失敗しました

  24. 24

    maven-surefire-pluginダミー:dummy.jar:1.0がありません

  25. 25

    maven surefire:実行中の現在のテストを印刷する方法は?

  26. 26

    maven-surefire-pluginは単一のメソッドを実行しますが、クラスで失敗しました

  27. 27

    Maven surefireプラグインが永久にハングする

  28. 28

    Mavenのsurefireが実行されていないのはなぜですか?

  29. 29

    MavenプロジェクトでJUnit5を使用するときにmaven-surefire-pluginが必須なのはなぜですか?

ホットタグ

アーカイブ