web-dev-qa-db-ja.com

Jacoco Mavenプラグイン-プラグインの実行がライフサイクル構成の対象外

私はMavenを初めて使用し、Jacoco Mavenプラグインを使用してプロジェクトをビルドしたいと考えています。

TestNGが唯一の依存関係を持つサンプルプロジェクトを設定しました。

以下はpom.xmlの一部です。

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.2.201302030002</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

そして私はこのエラーを受け取ります:

プラグインの実行がライフサイクル構成でカバーされていません:org.jacoco:jacoco-maven- plugin:0.6.2.201302030002:prepare-agent(実行:デフォルト、フェーズ:初期化)

何が悪いのですか?乾杯

19
Markus

プラグインの目標を無視して、このようなものをpom.xmlに追加できます

<pluginManagement>
        <plugins>
            <!--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.jacoco</groupId>
                                    <artifactId>jacoco-maven-plugin</artifactId>
                                    <versionRange>[0.5,)
                                    </versionRange>
                                    <goals>
                                        <goal>prepare-agent</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <!-- m2e doesn't know what to do with jacoco,
                                        let's ignore it or annoying error markers appear
                                        see http://wiki.Eclipse.org/M2E_plugin_execution_not_covered
                                     -->
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
19
Iker Aguayo

これはEclipse Mavenプラグインに関連しているため、Eclipseの設定でローカルに設定することもできます。プロジェクトのpomファイルから構成を移動すると、コードがシンプルでクリーンになり、IDEの詳細がなくなります。

Eclipse-> Preferences-> Maven-> Lifecycle Mappingsに移動します。追加 lifecycle-mapping-metadata.xml次のように:

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
  <pluginExecutions>
    <pluginExecution>
      <pluginExecutionFilter>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <versionRange>[0.5,)</versionRange>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
      </pluginExecutionFilter>
      <action>
        <ignore />
      </action>
    </pluginExecution>
  </pluginExecutions>
</lifecycleMappingMetadata>

ライフサイクルマッピングファイルをリロードしてから、Maven-> Update Project

16
neurite

Eclipseは、警告を無効にしてユーザー設定に保存するためのクイックフィックスを提供します(Eclipse-> Preferences-> Maven-> Lifecycle Mappings lifecycle-mapping-metadata.xmlとして@ iker-aguayoが指摘)。ファイルを手動で作成または編集する必要はありません。これは、POMを更新できない場合(コミットできないオープンソースプロジェクトを使用する場合など)に役立ちます。

0
djb