私はかなりシンプルなMavenプロジェクトを持っています:
<project>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
ただし、m2Eclipseで次のエラーが表示されます。
Description Resource Path Location Type
maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. pom.xml /jasperreports-test line 60 Maven Project Build Lifecycle Mapping Problem
M2Eclipseがこのタスクを「サポート」していないのに気にするのはなぜですか? Mavenはそうであり、それが私が本当に気にするすべてです。私のプロジェクトでこのエラーを取得するにはどうすればよいですか?
これは既知の問題のようです。これを無視するようにm2eに指示できます。
オプション1:pom.xml
<build/>
タグ内に次を追加します。
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<plugin>
<groupId>org.Eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- copy-dependency plugin -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins></pluginManagement>
この後、Mavenを実行する必要があります...->プロジェクトのプロジェクト構成を更新します。
詳細はこちら: http://wiki.Eclipse.org/M2E_plugin_execution_not_covered#m2e_maven_plugin_coverage_status
オプション2:グローバルEclipseオーバーライド
POMファイルの変更を避けるために、Eclipseの設定を介してワークスペース全体に無視オーバーライドを適用できます。
このファイルをディスク上のどこかに保存します。 https://Gist.github.com/maksimov/8906462
Eclipse/Preferences/Maven/Lifecycle Mappings
でこのファイルを参照し、[OK]をクリックします。
これは、M2E for Eclipseの問題です M2Eプラグインの実行はカバーされていません 。
この問題を解決するには、認識できないライフサイクルをマップし、M2Eに実行するよう指示するだけです。
これをplugins
の後ろのbuild
内に追加する必要があります。これによりエラーが削除され、M2Eがcopy-depencies
の目標maven-dependency-plugin
を認識し、POMが期待どおりに動作するようになり、Eclipseがビルドするたびに依存関係がフォルダーにコピーされます。エラーを単に無視したい場合は、<execute />
を<ignore />
に変更します。前に提案したように、maven-dependency-plugin
をpluginManagement
で囲む必要はありません。
<pluginManagement>
<plugins>
<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-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
コピーの依存関係、アンパック、パックなどがプロジェクトにとって重要な場合は、無視しないでください。 Eclipse Indigo SR1、maven 2.2.1でテスト済みの<plugins>
で<pluginManagement>
を囲む必要があります
動作させるには、無視する代わりに、maven-dependency-pluginのm2eコネクターをインストールできます。
https://github.com/ianbrandt/m2e-maven-dependency-plugin
Eclipseでこれを行う方法は次のとおりです。
上記のCaioToOnからの回答にもかかわらず、私はまだこれを最初に動作させるのに問題がありました。
複数の試行の後、ようやく機能しました。ここに私の最終バージョンを貼り付けています-それが他の誰かの利益になることを願っています。
<build>
<plugins>
<!--
Copy all Maven Dependencies (-MD) into libMD/ folder to use in classpath via shellscript
-->
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/libMD</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!--
Above maven-dependepcy-plugin gives a validation error in m2e.
To fix that, add the plugin management step below. Per: http://stackoverflow.com/a/12109018
-->
<pluginManagement>
<plugins>
<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-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
EclipseでHadoopプロジェクトをロードしようとしたときに、同じ問題が発生しました。上記の解決策を試してみましたが、Eclipse Keplerで機能したのではないかと思います...もうよくわかりません(試行錯誤しました)。
私が抱えていたすべての問題を抱えて、Eclipse Lunaに進むことにしましたが、上記の解決策はうまくいきませんでした。
...タグをパッケージに変更することを推奨する別の投稿がありました。私はそれを始めました、そしてそれはエラーを「クリア」するでしょう...しかし、私は後で変更が私に噛みつくと思うようになります-私はMavenの専門家ではありません。
幸いなことに、すべてのエラーを削除する方法を見つけました。 「ウィンドウ」->「設定」->「Maven」->「エラー/警告」に移動し、「プラグインの実行はライフサイクルでカバーされていません...」オプションを「無視」に変更します。それが役に立てば幸い。
私はこれが古い投稿であることを知っていますが、今日この問題に苦労し、このページのテンプレートを使用しました: http://maven.Apache.org/plugins/maven-dependency-plugin/usage.html
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>[ groupId ]</groupId>
<artifactId>[ artifactId ]</artifactId>
<version>[ version ]</version>
<type>[ packaging ]</type>
<classifier> [classifier - optional] </classifier>
<overWrite>[ true or false ]</overWrite>
<outputDirectory>[ output directory ]</outputDirectory>
<destFileName>[ filename ]</destFileName>
</artifactItem>
</artifactItems>
<!-- other configurations here -->
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
また、m2e
1.3.1ではすべて正常に動作します。
使用しようとしたとき
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
また、m2e
エラーが発生しました。
別のオプションは、問題タブに移動し、エラーを右クリックして、クイックフィックスの適用をクリックします。無視XMLコードを生成し、.pomファイルを適用する必要があります。