maven - 如何解决“Plugin execution not covered by lifecycle configuration”

  显示原文与译文双语对照的内容

我正在尝试使用 Spring Data 和 Neo4j 。 我开始尝试跟随这里指南链接到主站点。 特别是我基于 pom.xml的示例文件 。xml 。 下面是我的pom.xml 为引起问题的插件的截图。。


<plugin>
<!-- required to resolve aspectj-enhanced class features -->
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>aspectj-maven-plugin</artifactId>
 <version>1.0</version>
 <configuration>
 <outxml>true</outxml>
 <aspectLibraries>
 <aspectLibrary>
 <groupId>org.springframework</groupId>
 <artifactId>spring-aspects</artifactId>
 </aspectLibrary>
 <aspectLibrary>
 <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-neo4j</artifactId>
 </aspectLibrary>
 </aspectLibraries>
 <source>1.6</source>
 <target>1.6</target>
 </configuration>
 <executions>
 <!-- ERROR HERE IN ECLIPSE SEE BELOW FOR FULL MESSAGE -->
 <execution>
 <goals>
 <goal>compile</goal>
 <goal>test-compile</goal>
 </goals>
 </execution>
 </executions>
 <dependencies>
 <dependency>
 <groupId>org.aspectj</groupId>
 <artifactId>aspectjrt</artifactId>
 <version>${aspectj.version}</version>
 </dependency>
 <dependency>
 <groupId>org.aspectj</groupId>
 <artifactId>aspectjtools</artifactId>
 <version>${aspectj.version}</version>
 </dependency>
 </dependencies>
</plugin>

我看到的错误是。。


 Multiple annotations found at this line:
 - Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:compile (execution: default, phase: process-classes)
 - Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:1.0:test-compile (execution: default, phase: process-classes)

正在运行 Eclipse 3.6.2和 m2e 0.13. 我不是 Maven 专家,所以如果可能的话,请在你的答案中非常 explanitory 。

[update] 那么现在就还尝试用 m2e 1.0.0通过一个更新站点并仍然得到同样的错误。

时间:

一个类似的问题,而不是使用建议的修复的安德鲁却question,在我的示例中,我介绍了之后,它工作了只是 <pluginManagement> 标记到 看起来错误是由于缺少 <pluginManagement> 标记。 因此,为了避免 Eclipse 中的异常,看起来需要将所有插件标记放在一个 <pluginManagement> 标记中,如下所示:


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

一旦这个结构就位,错误就会消失。

真是一团糟。我不记得我在哪里找到了这个,但是我必须添加以下内容才能让plesk快乐。 更可悲的是,理解为什么需要这个标记并不容易。


 <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.codehaus.mojo</groupId>
 <artifactId>aspectj-maven-plugin</artifactId>
 <versionRange>[1.0,)</versionRange>
 <goals>
 <goal>test-compile</goal>
 <goal>compile</goal>
 </goals>
 </pluginExecutionFilter>
 <action>
 <execute/>
 </action>
 </pluginExecution>
 </pluginExecutions>
 </lifecycleMappingMetadata>
 </configuration>
 </plugin>
 </plugins>
 </pluginManagement>

在m2Eclipse中有多处其它条 plug-in,它只是没有处理 Spring Data 。 最后,我禁用了 http,以支持 Eclipse plug-in

参见 https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html web 。

为了解决一些长期困扰问题,M2E 1.0需要明确的说明如何利用所有( 参见 M2E有趣生命周期 ) Maven 插件绑定到"有趣"阶段的项目构建生命周期。 我们将这些指令称为"项目构建生命周期映射"或者简单的"生命周期映射",因为它们定义了m2e如何将信息从项目 pom.xml 文件映射到 Eclipse 工作区在 Eclipse 工作区构建期间的配置和行为。

项目构建生命周期映射配置中可以指定项目 pom.xml, Eclipse 所贡献的插件,另外还有一些常用的默认配置 Maven 插件 shipped. 我们称之为"生命周期映射元数据源"。 m2e将为所有在任何映射元数据源中没有生命周期映射的插件执行创建如下的错误标记。


Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
 (execution: generate-sources-input, phase: generate-sources)

m2e使用插件的名称 groupId artifactId,版本范围和目标匹配插件执行到动作。 有三种基本行动都m2e可以被指导是跟一个插件执行 -- 忽略配置程序 以及委派到项目执行。

解决这个问题的最快方法是:

  1. pom.xml 和select,使用 quick-fix 上的错误 Permanently mark goal run in pom.xml as ignored in Eclipse build - 这将为你生成所需的样板代码。

  2. 而且你是done,之后在生成的配置只是将 <ignore/> 标记替换为 <execute/> tag:

    
    <action>
     <execute/>
    </action>
    
    

作为增编到上一个答案--没有一种解决方法我刚才发现的如果你不能或者不想将所有这些样板文件到你的项目中添加的pox 。 如果你查看以下位置:


{Eclipse_folder}/plugins/org.eclipse.m2e.lifecyclemapping.defaults_{m2e_version}

你应该找到一个名为 lifecycle-mapping-metadata.xml的文件,在这里你可以在其他答案中进行相同的更改,并且在 M2E插件执行中没有涉及到

我有同样的问题 Eclipse indigo和plesk作为我的Maven 插件。 通过在插件定义中显式声明执行阶段,可以很容易地解决这个错误,所以我的pom看起来像这样:


<project>
...
<build>
...
<plugins>
<plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>buildnumber-maven-plugin</artifactId>
 <version>1.0</version>
 <configuration>
 <timestampFormat>yyyy-MM-dd_HH-mm-ss</timestampFormat>
 </configuration>
 <executions>
 <execution>
 *<phase>post-clean</phase>*
 <goals>
 <goal>create-timestamp</goal>
 </goals>
 </execution>
 </executions>
</plugin>
</plugins>
...

  1. 转到帮助> 安装新软件。。
  2. 使用这里软件存储库

    确保"在安装过程中与所有更新站点联系以查找所需的软件"已经被选中。

  3. 安装 AJDT m2e配置器

于提高开发效率的工具相关 2.8.0 ( 安德鲁 Eisenberg ),源:升级 Maven 集成

在"靛蓝更新站点"( 根据你的该应自动安装 ADJT ), Eclipse 版本如果你没有安装,但是如果出了不能播放,安装AspectJ开发工具( ADJT ) first.

关于 AspectJ开发工具站点 web的更多信息。

...