4

@requiresDependencyResolutionテストで注釈が付けられたmojoがあります。

単一層のネストを使用するマルチモジュールプロジェクトで機能しますが、ユーザーから次のような構造の問題が報告されています。

 -- my_project
    |
    -- pom.xml
    -- submodule1
       |
       -- pom.xml
    -- submodule2
       |
       -- pom.xml
       -- submodule21
         |
         -- pom.xml
       -- submodule22
         |
         -- pom.xml

submodule21がsubmodule1に依存している場合mavenレポート

プロジェクトsubmodule21で目標を実行できませんでした:プロジェクトorg.my:submodule21:jar:1.0の依存関係を解決できませんでした-SNAPSHOT:アーティファクトorg.my:submodule1:jar:1.0が見つかりませんでした-SNAPSHOT

requireDependencyResolution = testアノテーションを削除すると、この問題は回避されますが、mojoの実行に必要な情報にアクセスできなくなります。

githubでのsurefireコードの簡単なスキャンから、requiresDependencyResolution = testも使用しているように見えますが、このプロジェクトに対して問題なく実行できます。

https://github.com/apache/maven-surefire/blob/master/maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java

https://github.com/apache/maven-surefire/blob/master/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java

私自身のコードとの唯一の明らかな違いは、古いスタイルのjavadocアノテーションではなくjavaアノテーションを使用していることです。

シュアファイアモジョはこれをどのように達成していますか?

私のコードは

http://code.google.com/p/pitestrunner/source/browse/pitest-maven/src/main/java/org/pitest/maven/PitMojo.java

問題を表示しているプロジェクトの例

http://code.google.com/p/pitestrunner/issues/detail?id=71

4

1 に答える 1

0

この問題を抱えている他の人の利益のために-私は最終的にこの問題を解決しました。プラグインに問題はありませんでした。

surefireと私自身のプラグインの違いは、単にそれらが実行されていた方法でした。Surefireはテストフェーズにバインドされていました。私自身のプラグインは、ゴールを直接呼び出すことによって実行されていました。プラグインを検証フェーズにバインドすると、すべてが問題なく解決されます。

于 2013-09-16T18:57:46.397 に答える