如何解决Spring Data Maven构build中的“生命周期configuration未涉及的插件执行”

我正在尝试使用Spring Data和Neo4j 。 我开始尝试按照主站点链接的这个指南 。 特别是我把我的pom.xml关掉了“Hello,World!” 示例文件 。 这是从我的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 ,仍然得到相同的错误。

在我遇到类似的问题,而不是使用安德鲁的修复build议,它简单地工作后,我介绍<pluginManagement>标记到有问题的pom.xml。 看起来这个错误是由于缺less一个<pluginManagement>标签。 所以,为了避免Eclipse中的exception,看起来像只需要将所有的插件标签封装在一个<pluginManagement>标签中,像这样:

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

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

真是一团糟。 我不记得我在哪里find这个,但是我不得不添加以下内容才能使M2Eclipse很快乐。 更难过的是,为什么需要这个标签并不容易理解。

 <build> ... various plugins ... <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> </build> 

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

最快的方法来解决这个问题(从Eclipse m2e文档 ):

  1. pom.xml中的错误使用quick-fix ,并Permanently mark goal run in pom.xml as ignored in Eclipse buildselectPermanently mark goal run in pom.xml as ignored in Eclipse build这会为您生成所需的样板代码。

  2. 之后,只需在生成的configuration中用<execute/>标记replace<ignore/>标记,即可完成:

     <action> <execute/> </action> 

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

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

项目构build生命周期映射configuration可以在项目pom.xml中指定,由Eclipse插件提供,还有一些常用的m2e附带的Maven插件的默认configuration。 我们称之为“生命周期映射元数据源”。 m2e将为所有在任何映射元数据源中没有生命周期映射的插件执行创build如下所示的错误标记。

 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执行插件 – 忽略执行并委托给项目configuration器

在Eclipse Luna 4.4.0中,你可以select在首选项中忽略这个错误

窗口 > 首选项 > Maven > 错误/警告 > 生命周期configuration没有涉及的插件执行 。 select忽略/ Warninig /错误,如你所愿。

另外,在这个错误的快速修复(Ctrl + 1)中,它提供了一个选项,在Eclipse的偏好(实验性)

这是一个更干净的方式,因为它不会修改你的pom.xml

您将需要执行Maven > Update项目以修复其他项目中的相同错误。

m2e 0.13引入了m2e连接器m2e Market Place来扩展m2efunction。 这就像旧的m2e-extras存储库。

您可以从首选项>选项>发现>打开目录访问M2e市场。 安装WTP集成为我解决了大部分的插件问题。

作为以前答案的附录 – 如果您不能或不想将所有这些样板文件添加到您的项目POM中,则会find一个我刚刚发现的解决方法。 如果你在以下位置看:

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

您应该find一个名为lifecycle-mapping-metadata.xml的文件,您可以在其中做出与其他答案中描述的相同的更改,并且不涉及M2E插件执行 。

我与Eclipse v3.7(Indigo)和m2eclipse的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> ... 

请注意,今天的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?> 

在这里输入图像描述

详细信息请参阅发行说明 。

我和靛蓝有一样的问题,需要从XSD生成Java源代码。
我可以通过提供缺less的生命周期映射来修复它,如本页所述

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

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

  3. 安装AJDT m2econfiguration程序

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

如果你没有安装ADJT,它应该会自动安装,但是如果没有安装,那么首先从“Indigo更新站点”(根据你的Eclipse版本)安装AspectJ开发工具(ADJT)。

有关AspectJ开发工具网站的更多信息。

将Maven的插件执行偏好从错误更改为忽略

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

如果您使用的是Eclipse 4.2,并且遇到了映射问题,并且不会把麻烦放进你的pom.xml ,请在Windows -> Preferences -> Lifecycle mappingconfiguration它Windows -> Preferences -> Lifecycle mapping (不要忘记按刷新工作空间生命周期映射元数据每次更改此文件后)! 这里是基于eclipse/plugins/org.eclipse.m2e.lifecyclemapping.defaults_1.2.0.20120903-1050.jar/lifecycle-mapping-metadata.xml示例

 <?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> 

我修复了以下博客文章升级SpringSource Tool Suite 2.8.0的Maven集成

按照“ 呃,我的项目不再build立 ”部分的build议。 即使在SpringSource工具套件中,我也使用它来修复常规的Eclipse安装。 我不必修改我的POM文件。

使用m2e 0.12 ,Sonatype的最新版本。

我正在使用

 <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> 

错误消失了。 也许不build议将执行绑定到testing编译阶段,因此find不同阶段可能是将插件pipe理configuration添加到maven生命周期的备用解决scheme。

哪里可以findWTP:

在pom.xml中点击<插件>并点击“发现新的M2e连接器”。

我安装了他们所有默认检查,它的工作原理。

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

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

这个错误也发生在霓虹灯上,因为缺less了m2e连接器。 解决scheme:hover错误并select – 发现新的m2e连接器。

它会安装新的连接器,就是这样。

我今天有这个问题。 我正在使用捆绑Roo 1.2.4的STS 3.4。 后来我用Eclipse Kepler和Roo 1.2.5试了一下,同样的错误。

我已经改变了我的pom.xml添加pluginTemplates标签后生成和插件声明之前,但没有工作。

是什么让我的魔力:

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

    export PATH = / opt / jdk1.7.0_51 / bin:$ PATH export PATH = / opt / spring-roo-1.2.5.RELEASE / bin:$ PATH export PATH = / opt / apache-maven-3.2.1 / bin :$ PATH

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

 $ mkdir hello $ cd hello $ roo.sh roo> project --topLevelPackage com.foo roo> jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT roo> web mvc setup roo> perform eclipse 

用Eclipse打开(没有任何STS,但我想它的工作原理):导入 – >现有项目到工作区

而不是搞乱你的POM文件,我build议你去显示视图标记在Eclipse中,select并删除适当的错误的标记。

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

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

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

  1. 使用命令行maven工具mvn

    mvn eclipse:eclipse

    创build一个eclipse项目

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

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

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

这应该解决这个问题。

我得到了同样的错误。 做完以下的事情就消失了。

  1. 右键点击该项目。
  2. selectMaven>更新项目…

这个答案与上面的顶级插件pipe理答案一样好(也就是说,这太可怕了)。

只要删除在POM中的所有有问题的XML代码。

完成。 问题解决了(除非你打破了你的mavenconfiguration…)。

开发人员在做任何这些解决scheme之前都应该非常小心,理解插件pipe理标签。 只是在你的插件中插入插件pipe理是随机的,可能会打破所有人的maven版本,只是为了让eclipse工作。

你可以在eclipse中抑制这个错误:Window – > Preferences – > Maven – > Error / Warnings

更改

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

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

为我解决了这个问题。

我遵循GUI提示find任何连接器,然后从SpringSource团队发现了AspectJ Integrator。 安装完成后,

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

解决scheme是使用一个JDK而不是一个JRE为您的Eclipse项目。 确保尝试maven clean并从Eclipse进行testing只是为了下载缺less的JAR文件。

对我来说这是由AspectJ类造成的。 我无法find一个发现下的插件,可以帮助。 所以,我通过复制现有STS安装的插件和function文件夹下的org.maven.ide.eclipse.ajdt文件来解决这个问题。

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