15

Maven ビルドがコマンド ラインでは問題なく動作するのに、Eclipse で実行すると、このセクションを pom.xml に追加する必要があるのはなぜですか。そうしないと、次のエラーが発生します。

Plugin execution not covered by lifecycle configuration
: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
 (execution: default-testCompile, phase: test-compile)

これが「maven-compiler-plugin」プラグインの周りで発生するのは奇妙ではありませんか?? サードパーティのプラグインに関する多くの修正提案を見つけましたが、Google のどこにもこのような別の質問は見つかりません。私は多くの調査と検索を行いましたが、ここからでも、これについての説明は見つかりませんでした。

そして、これを修正するために必要な pom.xml:

<!--This plugin's configuration is used to store Eclipse m2e 
settings only. It has no influence on the Maven build itself.-->
    <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
        <lifecycleMappingMetadata>
            <pluginExecutions>
                <pluginExecution>
                    <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <versionRange>[3.1,)</versionRange>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action> 
                        <ignore></ignore>
                    </action>
                </pluginExecution>
            </pluginExecutions>
        </lifecycleMappingMetadata>
    </configuration>
</plugin>

また、私のソースをご覧になりたい場合は、こちらが GitHub の私の簡単なプロジェクトです。

4

3 に答える 3

7

私は最終的にそれを解決しました。上に投稿した「pluginManagement」セクションは、一般的にEclipse Mavenプロジェクトで必要とされているようですが、私は抵抗しましたが、インターネット上で見つけることができるドキュメントではこれについて明示的に言及していません。

また、ライフサイクル除外セクションの「versionRange」には、上記で指定しようとしていた「バージョンの Maven」ではなく、「gmaven-plugin」のバージョン番号も必要なようです。

<pluginExecutionFilter>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <versionRange>[1.5,)</versionRange>
    <goals>
        <goal>testCompile</goal>
        <goal>compile</goal>
    </goals>
</pluginExecutionFilter>
于 2013-04-12T15:11:02.250 に答える
2
  1. ヘルプ -> 新しいソフトウェアのインストール

    • Groovy コンパイラ 2.2 / 2.1 機能のインストール

    • Groovy-Eclipse M2E 統合をインストールする

  2. ウィンドウ -> 設定 -> Maven -> ライフサイクル マッピング -> ワークスペース ライフサイクル マッピング メタデータを開く

次の xml を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
    <pluginExecutions>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <versionRange>[1.3,)</versionRange>
                <goals>
                    <goal>compile</goal>
                    <goal>testCompile</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <execute />
            </action>
        </pluginExecution>
    </pluginExecutions>
</lifecycleMappingMetadata>
  1. ライフサイクル マッピングを再読み込みし、Maven プロジェクトでプロジェクトの更新を呼び出します。(ALT+F5)
于 2015-01-14T09:32:13.950 に答える
2

Eclipse (JDT) コンパイラーを使用して maven-compiler-plugin を理解するには、M2E「コネクター」が必要になる場合があります。

「コネクターの検出」を選択し、JBoss が提供する Eclipse JDT コンパイラー用の M2E コネクターを選択するか、手動でインストールします。

Eclipse JDT Compiler 1.0.1.201209200903 用の M2E コネクター

Groovy コネクタも提供される場合があります。内部で同様のテクノロジが使用されているのではないでしょうか? -- しかし、Groovy を使用していない限り、そのような統合をインストールする意味はありません。

于 2015-01-27T01:19:43.933 に答える