1. ホーム
  2. java

Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決

2022-02-13 03:29:48
The following error is reported.
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (execution: default -testCompile, phase: test-compile)





その理由は、Mavenベースのプロジェクトでは、ほとんどの場合、コードのコンパイル、パッケージング、デプロイなど、開発における作業の一部をさまざまなMavenプラグインで行っているからです。各プラグインには、特定のことを行うために使用される多くのゴールが含まれています。例えば、クリーンコンパイル、テストパッケージ、デプロイ、などです。問題は、eclipse で maven プロジェクトを編集する際に、eclipse がこれらの 特殊用途の するための目標です。そこで、eclipseにmavenを統合するm2eclipseは プラグインはエクストラを開発する機能を提供し、eclipse はそのエクストラを使用して、maven プラグインで行われるはずの作業を行うことができます。eclipseが特定のゴールが何をしようとしているのかを知る方法がない場合、このエラーメッセージが表示されます。

<スパン 解決策の1つ
での スタックオーバーフロー の投稿は エラーを報告するプラグインの外側のpom.xmlで別のレイヤーをラップします。 <pluginManagement></pluginManagement> を以下のようにします。
<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>








    解決策2
    pluginManagementの役割は、子プロジェクトで共有される共通のプラグイン設定項目として機能することです。プロジェクトに子プロセスがない場合、これは意味をなさないか、時には親プロジェクトのpomを変更できず、pluginManagementを追加する方法がないことがあります。Mappingタブで、Open workspace lifecycle mappings metadataをクリックし、carded xmlに以下を追加して保存します。

<?xml version="1.0" encoding="UTF-8"? >
<lifecycleMappingMetadata>
    <pluginExecutions>
    
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>sql-maven-plugin</artifactId>
                <goals>
                    <goal>execute</goal>
                </goals>
                <versionRange>[1.4,)</versionRange>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>
        
    </pluginExecutions>
</lifecycleMappingMetadata>




Modify the groupId and artifactId and versionRange according to the specific plugin, and remember to click the "Reload workspace lifecycle mappings metadata" button after saving