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

| 我正在尝试使用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,但仍然收到相同的错误。     
已邀请:
        在我遇到类似问题的情况下,仅在将标记引入到有问题的pom.xml中之后,它才起作用,而不是使用Andrew的建议。看起来该错误是由于缺少标记引起的。因此,为了避免Eclipse中的异常,需要将所有插件标签简单地封装在标签内,如下所示:
<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>
一旦建立了这种结构,错误就会消失。     
        真是一团糟。我不记得是在哪里找到的,但是我必须添加以下内容才能使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文档中建议的解决方案: 对pom.xml中的错误使用快速修复,然后选择ѭ4-这将为您生成所需的样板代码。 要指示Eclipse在构建期间运行您的插件-只需在生成的配置中将with5ѭ标记替换为
<execute/>
标记即可:
<action>
    <execute/>
</action>
另外,您也可以指示Eclipse在增量构建上运行插件:
<action>
    <execute>
        <runOnIncremental>true</runOnIncremental>
    </execute >
</action>
    
        在Eclipse Luna 4.4.0中,您可以选择在首选项中忽略此错误。 窗口>首选项> Maven>错误/警告>生命周期配置未涵盖的插件执行。根据需要选择忽略/警告/错误。 另外,在此错误的快速修复(Ctrl + 1)中,它提供了一个选项来 在Eclipse偏好设置中将目标标记为Eclipse中忽略的目标(实验性) 这是一种更干净的方法,因为它不会修改您的“ 9”字样。 您将需要执行一个Maven>更新项目,以修复其他任何项目中的相同错误。 在STS(Spring-tool-suite)中,您可以选择在首选项中忽略此错误 窗口>首选项> Maven>错误/警告>生命周期配置未涵盖插件执行。根据需要选择“忽略/警告/错误”。 然后。右键单击项目,单击Maven并更新项目,然后错误将消失。     
        参见https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html。   为了解决一些长期存在的问题,   m2e 1.0需要明确的说明   如何处理所有Maven插件   绑定到的“有趣”阶段   项目构建生命周期。我们称这些   说明“项目构建生命周期   映射”或简称为“生命周期映射”   因为它们定义了m2e的映射方式   项目pom.xml文件中的信息   Eclipse工作区项目   期间的配置和行为   Eclipse工作区构建。      项目构建生命周期映射   可以在以下位置指定配置   项目pom.xml,由以下人员提供   Eclipse插件,还有   一些的默认配置   常用的Maven插件已交付   与m2e。我们称这些为“生命周期   映射元数据源\“。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的三个基本动作   可以指示使用插件   执行-忽略,执行和   委托给项目配置者。     
        m2e 0.13引入了m2e连接器和m2e市场,以扩展m2e功能。 就像旧的m2e-extras存储库一样。 您可以从以下偏好设置访问m2e市场:偏好设置> Maven>发现>打开目录。 安装WTP集成为我解决了大多数插件问题。     
         将插件执行的Maven首选项从错误更改为忽略     
请注意,今天的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?>
有关详细信息,请参见发行说明。     
        作为先前答案的附录,我发现了一个变通办法,您是否可以将所有这些样板添加到项目POM中。如果您在以下位置查看:
{Eclipse_folder}/plugins/org.eclipse.m2e.lifecyclemapping.defaults_{m2e_version}
您应该找到一个名为“ 14”的文件,您可以在该文件中进行其他答案和未涵盖的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>
        ...
    
         转到帮助>安装新软件... 使用此软件存储库 确保选中“安装过程中联系所有更新站点以找到所需的软件”。 安装AJDT m2e配置器 来源:升级SpringSource Tool Suite 2.8.0的Maven集成(Andrew Eisenberg) 如果没有安装ADJT,它将自动安装,但是如果没有安装,请首先从“ Indigo更新站点”(根据您的Eclipse版本)安装AspectJ开发工具(ADJT)。 有关AspectJ开发工具网站的更多信息。     
        转到
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生命周期映射元数据!)。这是基于
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>
    
        我在使用靛蓝和需要从XSD生成Java源代码的项目时遇到了同样的问题。 我可以通过提供缺少的生命周期映射来修复它,如本页所述     
        我在博客文章“为SpringSource Tool Suite 2.8.0升级Maven集成”之后进行了修复。 请遵循“嗯,哦……我的项目不再建立”一节中的建议。即使将其用于SpringSource Tool Suite,我也使用它来修复常规的Eclipse安装。我不必修改我的pom文件。     
        使用m2e 0.12(Sonatype的最新版本)。     
        由于缺少m2e连接器,在氖灯上也会发生此错误。 解: 悬停错误并选择-发现新的m2e连接器。 它将安装新的连接器。     
        我在用
<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生命周期的替代解决方案。     
        在哪里找到WTP: 在pom.xml中的<插件>上向下鼠标,然后\“发现新的m2e连接器\”。 我安装了所有默认检查的东西,并且可以正常工作。     
        更新m2e之后,我遇到了完全相同的问题,并通过重新安装Eclipse WTP的Maven Integration解决了该问题。 事实证明,我卸载了它,试图将m2e从版本0.x更新到1.x。     
        我今天有这个问题。我正在使用STS 3.4及其捆绑的Roo 1.2.4。后来我尝试使用Eclipse Kepler和Roo 1.2.5,出现同样的错误。 我更改了pom.xml,在构建之后和插件声明之前添加了pluginTemplates标记,但是没有用。 是什么让我着迷: 使用jdk 1.7.0_51 下载的Roo 1.2.5 下载的Maven 3.2.1(如果未执行,则在执行“执行eclipse \”时会出现此错误“ error = 2,没有此类文件或目录”) 在我的PATH上配置的JDK,Roo和Maven bin目录: 导出PATH = / opt / jdk1.7.0_51 / bin:$ PATH 导出PATH = / opt / spring-roo-1.2.5.RELEASE / bin:$ PATH 导出PATH = / opt / apache-maven-3.2.1 / bin:$ PATH 进行如下配置: (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,但我想它可以工作):导入->现有项目到Workspace     
我遇到了与Maven Thrift插件完全相同的问题。这是我的解决方案,不需要弄乱您的pom.xml: 使用命令行Maven实用程序mvn   mvn eclipse:eclipse 创建一个蚀项目 在eclipse中导入项目。切记使用   文件>导入>常规>现有项目到工作区 将项目添加到您的工作区中。 这应该可以解决问题。     
        建议您不要搞乱pom文件,建议您转到Eclipse中的Show View→Markers,选择并删除适当错误的标记。     
        如果您使用的是Eclipse Juno,则可能是Maven Integration for Eclipse WTP的问题。因此,从Eclipse Market Place安装相同的程序。 在Eclipse IDE中 帮助>> Eclipse Market Place >>键入查询wtp,它将显示Eclipse WTP for Juno的maven集成,安装它并更新maven依赖项并享受     
        我遇到了同样的错误。完成以下操作后,它消失了。 右键单击该项目。 选择Maven>更新项目...     
        这个答案和上面的顶级插件管理答案一样好(也就是说,这很糟糕)。 只需删除pom中所有有问题的xml代码即可。 做完了问题已解决(除非您刚刚破坏了Maven配置...)。 开发人员在执行任何这些解决方案之前应非常小心,他们了解插件管理标签。 只是随随便便地对插件进行拍子管理可能会破坏其他人的Maven构建,只是为了让日食起作用。     
        您可以在Eclipse中抑制此错误: 窗口->首选项-> Maven->错误/警告     
        改变中
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.2</version>
进入
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
为我解决了问题。     
        我按照GUI提示找到任何连接器,然后从SpringSource团队找到了AspectJ Integrator。安装后就解决了。     
        我在Eclipse v4.3(Kepler)和Maven 3.1上遇到了这个问题。 解决方案是为您的Eclipse项目使用JDK而不是JRE。确保尝试使用
maven clean
并从Eclipse进行测试,只是下载丢失的JAR文件。     
        对我来说,这是由AspectJ类引起的。我在“发现”下找不到可以提供帮助的插件。因此,我通过在现有STS安装的插件和功能文件夹下复制org.maven.ide.eclipse.ajdt文件来解决此问题。 我知道,这种做法很不礼貌。     

要回复问题请先登录注册