2013-10-17 26 views
15

pluginManagementタグの親のpom.xmlにjaxws-maven-pluginがあり、このpluginを子pomに参照しています。pluginManagementのeclipseで親のpomのプラグイン実行でエラーが発生しない

mvnクリーンインストールが正常に実行されています。しかし、Eclipseは "プラグインの実行はライフサイクル設定でカバーされていません:org.codehaus.mojo:jaxws-maven-plugin:1.12:wsimport(実行:FirstWsdl、phase:generate-sources)"という文句を言っています。

eclipseでこのエラーを回避する方法を提案できますか?

親ポンポン

<pluginManagement> 
    <plugins> 
    ... 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jaxws-maven-plugin</artifactId> 
     <version>1.12</version> 
     <executions> 
      <execution> 
       <id>FirstWsdl</id> 
       <goals> 
        <goal>wsimport</goal> 
       </goals> 
       <phase>generate-sources</phase> 
       <configuration> 
        <wsdlLocation>location/file.wsdl</wsdlLocation> 
        <wsdlFiles> 
         <wsdlFile>file.wsdl</wsdlFile> 
        </wsdlFiles> 
        <packageName>com.xxx.package</packageName> 
       </configuration> 
      </execution> 

     </executions> 
     <configuration> 
      <sourceDestDir>${basedir}/generated</sourceDestDir> 
      <verbose>true</verbose> 
      <extension>true</extension> 
      <keep>true</keep> 
      <vmArgs> 
       <vmArg .../> 
      </vmArgs> 
     </configuration> 

    </plugin> 
... 
    </plugins> 
</pluginManagement> 

子ポンポン

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jaxws-maven-plugin</artifactId> 
    </plugin> 
</plugins> 

私はこの質問を見て、How to solve "Plugin execution not covered by lifecycle configuration" for Spring Data Maven Buildsを返信する、しかし、私はこのエラーを回避するために、親と子のポンポンでpluginManagementの両方を使用する必要がありますか?

答えて

18

これは次のようになります。wikiページ "M2E plugin execution not covered" に記載さ

  • ビルド・ライフサイクル・マッピングは、プロジェクトのpom.xmlに構成することができ、プロジェクト、Eclipseプラグインによって寄与、またはにデフォルト設定m2eに同梱されている一般的なMavenプラグインです。
    これらを「ライフサイクルマッピングメタデータソース」と呼びます。
    m2eは、マッピングメタデータソースのいずれかにライフサイクルマッピングを持たないすべてのプラグイン実行に対して、以下のようなエラーマーカーを作成します。

  • "How to solve “Plugin execution not covered by lifecycle configuration” for Spring Data Maven Builds"(これを参照してください)。

    • 親のpomにlifecycleMappingMetadataを追加するか、
    • またはプラグインを<pluginManagement>タグ(両方ともpom)で囲むことによって解決できます。

That threadあなたの特定のエラーメッセージに詳細を追加します。「Mavenの」下のプロジェクトのプロパティでのEclipse UIで見てみるとき

- >「ライフサイクルのマッピング」 (「ライフサイクルフェーズを表示する」チェックボックスをチェックし、「無視された実行を表示」を無効にした)、以下の内容が表示されます。
このファイルは、Eclipseビルドライフサイクル(ランタイム/インクリメンタル)とそのバインドされたMavenプラグインの間のマッピングを示しています。
現在のところ、 "wsimport"のプラグイン "jax-ws"は含まれていません。

問題は、あなたがpluginManagementセクションで宣言jax-wsプラグインを持っているということです。
フェーズへのバインディングを取得するには、ビルド/プラグインに配置する必要があります。
CLIからMavenビルドを実行しても動作しないので、標準の "mvn install"をやっていないと思われますか?

Eclispe内からMavenを実行するには、何もする必要はありません。
IDEでインクリメンタル/ランタイムをサポートしたい場合は、適切なm2eコネクタを取得する必要があります。 EclipseのPOMエディタでpomを見ると、プラグインの実行に赤いエラーXが表示されます。その上にカーソルを置くと、プラグインを見つけるオプションが表示されます(「Discover new m2e connectors」)。

+0

だから、唯一の方法は、JAX-WSは、HTTPのようにプラグインを無視するように、親のポンポンでライフサイクルマッピング・メタデータを追加しているようです。 //wiki.eclipse.org/M2E_plugin_execution_not_covered#ignore_plugin_goal。 新しいm2eコネクタを発見すると、eclipseはjax-wsプラグインのプラグインを見つけられませんでした。 しかし、CLIからmvn clean installを実行しているときに、ws-import goalが実行されています。 –

+0

@would_like_to_be_anonはい、私は同意します。ライフサイクルマッピングのメタデータを追加することはうまくいくようです。 – VonC

13

あなたはドキュメントが言う理由として、日食 でこのエラーをオフにすることができconnectior見つけることができない場合は、次の

あなたがする必要はありません動作するようにEclispe内からMavenの実行を取得するには何でもする。

ので、Eclipseに行く:Preferences -> Maven -> Error/Warningsと変更エラーをオプションで警告:Plugin execution not converted by lifecycle configuration

+1

これは私が見つけた最も簡単な解決策です、ありがとうございます。私はこの答えが正解とマークされるべきだと思います。 – krokodilko

関連する問題