如何解决Spring Data Maven Builds的“生命周期配置未涵盖的插件执行”

我正在尝试使用Spring Data和Neo4j。我首先尝试遵循主站点链接到的本指南。特别是我的pom.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专家,所以如果可能,请在您的答案中非常解释。

我也尝试了m2e 1.0.0此更新网站,仍然得到相同的错误。

1208289 次浏览

真是一团糟。我不记得我在哪里找到这个,但我必须添加以下内容才能让M2Eclipse感到高兴。更可悲的是,很难理解为什么需要这个标签。

<build>... various plugins ...
<pluginManagement><plugins><!--This plugin's configuration is used to store Eclipsem2e 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></build>

M2Eclipse插件还有许多其他问题根本不适用于Spring Data。最后,我禁用了M2Eclipse以支持Apache Eclipse插件

m2e 0.13引入了m2e连接器M2E市场来扩展m2e特性。这就像旧的m2e临时演员存储库。

您可以从首选项访问m2e市场:首选项>Maven>发现>开放目录。安装wtp集成为我解决了大多数插件问题。

https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

为了解决一些长期存在的问题,m2e 1.0需要明确的指令如何处理所有Maven插件绑定到“有趣”的阶段项目构建生命周期。我们称之为说明”项目构建生命周期映射"或简称"生命周期映射"因为它们定义了m2e的映射方式来自项目pom.xml文件的信息到Eclipse工作区项目期间的配置和行为Eclipse工作区构建。

项目构建生命周期映射配置可以在项目pom.xmlEclipse插件,还有默认配置为某些常用的Maven插件发货我们称之为“生命周期”元数据". 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匹配插件执行到使用插件组ID的组合,artifactId,版本范围和目标。m2e有三个基本动作可以指示使用插件做执行--忽略执行和委托给项目配置器

我在Indigo和一个需要从XSD生成Java源代码的项目中遇到了同样的问题。我可以通过提供缺失的生命周期映射来修复它,如此页面

我的Maven插件在使用Eclipse v3.7(Indigo)和m2eclipse时遇到了同样的问题。通过在插件定义中明确说明执行阶段,该错误很容易解决。所以我的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>...

我在博客文章升级SpringSource Tool Suite 2.8.0的Maven集成之后修复了它。

遵循名为“啊哦…我的项目不再建造”的部分的建议。即使它适用于SpringSource Tool Suite,我也使用它来修复常规的Eclipse安装。我不必修改我的pom文件。

改变

<artifactId>aspectj-maven-plugin</artifactId><version>1.2</version>

<artifactId>aspectj-maven-plugin</artifactId><version>1.3</version>

为我解决了这个问题。

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

    确保选中“在安装期间联系所有更新站点以查找所需的软件”。

  3. 安装AJDT m2e配置器

来源:升级SpringSource Tool Suite 2.8.0的Maven集成(Andrew Eisenberg)

如果您没有安装ADJT,这应该会自动安装ADJT,但如果没有,请先从Indigo更新站点(根据您的Eclipse版本)安装Airi J开发工具(ADJT)。

更多信息开发工具网站

使用m2e0.12,Sonatype的最后一个版本。

我在更新m2e后遇到了完全相同的问题,并通过重新安装Eclipse WTP的Maven集成解决了这个问题。

事实证明,我卸载了它,试图将m2e从版本0. x更新到1. x

我按照GUI提示找到了任何连接器,然后我从SpringSource团队找到了Airi J集成商。安装后,它就解决了。

我在用

<groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>1.6</version><executions><execution><id>runSomeAntTasks</id><phase>test-compile</phase>..<goals><goal>run</goal></goals></execution></executions>

并将其改为

<groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>1.6</version><executions><execution><id>runSomeAntTasks</id><phase>integration-test</phase>..        
<goals><goal>run</goal></goals></execution></executions>

也许不建议将执行绑定到测试编译阶段,因此找到不同的阶段可能是将插件管理配置添加到maven生命周期的替代解决方案。

作为前面答案的补充——如果您不能或不想将所有这些样板添加到您的项目POM中,我刚刚发现了一个解决方法。如果您查看以下位置:

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

您应该找到一个名为lifecycle-mapping-metadata.xml的文件,您可以在其中进行与其他答案和M2E插件执行未涵盖中描述的相同的更改。

在我遇到类似问题的情况下,没有使用Andrew的建议进行修复,而是在我将插件管理标记引入有问题的pom.xml后简单地工作。看起来该错误是由于缺少标记。因此,为了避免Eclipse中的异常,需要简单地将所有插件标记包含在插件管理标记中,如下所示:

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

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

建议的解决方案Eclipse m2e留档

  1. 使用快速修复中的错误pom.xml并选择Permanently mark goal run in pom.xml as ignored in Eclipse build-这将为您生成所需的样板代码。

  2. 要指示Eclipse在构建期间运行您的插件-只需在生成的配置中将<ignore/>标记替换为<execute/>标记:

    <action><execute/></action>

    或者,您也可以指示Eclipse在增量构建上运行插件:

    <action><execute><runOnIncremental>true</runOnIncremental></execute ></action>

当您使用插件不支持的生命周期阶段时,会发生错误。因此,修复方法是更改与插件一起使用的生命周期阶段。

对我来说,这是由Airi J类引起的。我在Discovery下找不到可以提供帮助的插件。所以,我通过复制现有STS安装的org.maven.ide.eclipse.ajdt文件,在插件和功能文件夹下修复了这个问题。

我知道,非常粗鲁的做法。

转到workspace/rtc-ws/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml然后创建lifecycle-mapping-metadata.xml文件并粘贴到下面并重新加载配置如下

如果您使用的是Eclipse 4.2,并且在映射方面遇到了问题,并且不会将混乱放入您的pom.xml创建新文件lifecycle-mapping-metadata.xml,请在Windows -> Preferences -> Lifecycle mapping中配置它(不要忘记在每次更改此文件后按Reload workspace生命周期映射元数据!)。

<?xml version="1.0" encoding="UTF-8"?><lifecycleMappingMetadata><pluginExecutions><pluginExecution><pluginExecutionFilter><groupId>org.codehaus.mojo</groupId><artifactId>buildnumber-maven-plugin</artifactId><goals><goal>create-timestamp</goal></goals><versionRange>[0.0,)</versionRange></pluginExecutionFilter><action><ignore /></action></pluginExecution>
<pluginExecution><pluginExecutionFilter><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><goals><goal>list</goal></goals><versionRange>[0.0,)</versionRange></pluginExecutionFilter><action><ignore /></action></pluginExecution>
<pluginExecution><pluginExecutionFilter><groupId>org.zeroturnaround</groupId><artifactId>jrebel-maven-plugin</artifactId><goals><goal>generate</goal></goals><versionRange>[0.0,)</versionRange></pluginExecutionFilter><action><ignore /></action></pluginExecution>
<pluginExecution><pluginExecutionFilter><groupId>org.codehaus.mojo</groupId><artifactId>gwt-maven-plugin</artifactId><goals><goal>compile</goal></goals><versionRange>[0.0,)</versionRange></pluginExecutionFilter><action><ignore /></action></pluginExecution>
<pluginExecution><pluginExecutionFilter><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><goals><goal>copy-dependencies</goal><goal>unpack</goal></goals><versionRange>[0.0,)</versionRange></pluginExecutionFilter><action><ignore /></action></pluginExecution>
<pluginExecution><pluginExecutionFilter><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><versionRange>[1.7,)</versionRange><goals><goal>run</goal></goals></pluginExecutionFilter><action><ignore /></action></pluginExecution>

<pluginExecution><pluginExecutionFilter><groupId>org.apache.maven.plugins</groupId><artifactId>maven-checkstyle-plugin</artifactId><versionRange>[2.8,)</versionRange><goals><goal>check</goal></goals></pluginExecutionFilter><action><ignore /></action></pluginExecution>
</pluginExecutions></lifecycleMappingMetadata>

我使用Eclipse v4.3(开普勒)和Maven 3.1遇到了这个问题。

解决方案是为您的Eclipse项目使用JDK而不是JRE。确保尝试maven clean并从Eclipse测试只是为了下载丢失的JAR文件。

与其弄乱你的pom文件,我建议你在Eclipse中转到显示视图标记,选择并删除适当错误的标记。

我今天遇到了这个问题。我使用STS 3.4和它的捆绑Roo 1.2.4。后来我尝试使用Eclipse开普勒和Roo 1.2.5,同样的错误。

我改变了我的pom.xml在构建之后和插件声明之前添加插件模板标签,但没有起作用。

是什么给了我魔力:

  • 使用jdk 1.7.0_51
  • 下载Roo 1.2.5
  • 下载了Maven 3.2.1(如果不是,当执行“执行eclipse”时出现此错误“error=2,没有这样的文件或目录”)
  • 在我的PATH上配置JDK、Roo和Maven bin目录:

    exportPATH=/ope/jdk1.70_51/bin:$PATH导出PATH=/opt/spring-roo-1.2.5.RELEASE/bin:$PATH$PATH

我的配置如下:(http://docs.spring.io/spring-roo/reference/html/beginning.html

$ mkdir hello$ cd hello$ roo.shroo> project --topLevelPackage com.fooroo> jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENTroo> web mvc setuproo> perform eclipse

使用Eclipse打开(没有STS,但我想它可以工作):将->现有项目导入工作区

如果您使用的是Eclipse Juno,则可能是Eclipse WTP的Maven集成的问题。所以从Eclipse Market Place安装相同的。

在Eclipse IDE中帮助>>Eclipse Market Place>>键入查询wtp,它将显示用于Juno的eclipse WTP的maven集成,安装它并更新maven依赖项并享受

我遇到了完全相同的问题与maven节俭插件。这是我的解决方案,不需要搞乱你的pom.xml:

  1. 使用命令行maven实用程序mvn

    mvn eclipse:日食

    创建一个eclipse项目

  2. 在eclipse中导入项目。记得使用

    文件>导入>常规>现有项目到工作区

    将项目添加到您的工作区。

这应该能解决问题。

在哪里找到WTP:

鼠标点击pom.xml中的并发现新的m2e连接器。

我安装了所有默认检查的东西,它可以工作。

在Eclipse Luna 4.4.0中,您可以选择忽略首选项中的此错误

窗口>偏好>Maven>错误/警告>生命周期配置未涵盖的插件执行。根据需要选择忽略/警告/错误

此外,在此错误的快速修复(Ctrl+1)中,它提供了一个选项在Eclipse首选项中的Eclipse构建中将目标标记为忽略(实验)

这是一种更清晰的方式,因为它不会修改你的pom.xml

您还需要执行Maven>更新项目来修复任何其他项目中的相同错误。


在STS(Spring工具套件)中,您可以选择忽略首选项中的此错误

窗口>首选项>Maven>错误/警告>生命周期配置未涵盖的插件执行。根据需要选择忽略/警告/错误。然后。右键单击项目单击Maven并更新项目,然后错误将消失。

我得到了同样的错误。做了以下操作后,它消失了。

  1. 右键单击该项目。
  2. 选择Maven>更新项目…

这个答案和上面的顶级插件管理答案一样好(也就是说,它很糟糕)。

只需删除pom中所有违规的xml代码。

完成。问题解决(除了你刚刚破坏了你的maven配置…)。

开发人员应该非常小心,他们在执行任何这些解决方案之前了解插件管理标签。只是在你的插件周围随意使用插件管理很可能会破坏其他人的maven构建,只是为了让eclipse工作。

请注意,今天的Eclipse Neon发布系列中提供的M2Eclipse(m2e)版本1.7.0支持用于指定生命周期映射元数据的新语法。结果是这样的样板(这里我们告诉m2e忽略目标):

<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>exec-maven-plugin</artifactId><versionRange>[1.5.0,)</versionRange><goals><goal>exec</goal></goals></pluginExecutionFilter><action><ignore></ignore></action></pluginExecution></pluginExecutions></lifecycleMappingMetadata></configuration></plugin></plugins></pluginManagement>

可以在插件的执行节点中替换为单行:

<?m2e ignore?>

在此处输入图片描述

详情请参阅发行说明

将插件执行的Maven首选项从错误更改为忽略

我多年来一直遇到这个问题… eclipse的耻辱。如果您的应用程序被拆分为maven模块,那么您可以考虑从IDE中删除受影响的模块,每当您需要重新生成/运行插件时,使用带有install的maven命令行,eclipse就会对本地存储库中存在的准备好的工件感到满意。不需要摆弄

您可以在eclipse中抑制此错误:窗口->首选项->Maven->错误/警告

此错误也发生在霓虹灯上,因为缺少m2e连接器。解决方案:悬停错误并选择-发现新的m2e连接器。

它将安装新的连接器,仅此而已。

大多数答案只是忽略错误,其他建议的解决方案在我的情况下不起作用[formaven-编译器-插件]。我对这个问题的解决方案:

  1. 转到系统中的. m2本地存储库并找到org.apache.maven.plugins目录:
    • C:\用户\[您的用户名]\. m2\存储库\org\apache\maven\plugins
  2. 从此目录中删除maven-编译器-插件文件夹
    • 您可能需要关闭您的IDE(Eclipse
  3. 之后再次打开IDE并通过Maven更新项目
    • 在Eclipse中,右键单击项目根目录并选择Maven->更新项目…