我正在尝试使用Spring Data和Neo4j。我开始尝试遵循这个由主站点链接的指南。特别地,我基于“Hello, World!”示例文件创建了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通过这个更新网站,仍然得到相同的错误。


当前回答

我在用

<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生命周期添加插件管理配置的替代解决方案。

其他回答

真是一团糟。我不记得我在哪里找到了这个,但我必须添加以下内容才能让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插件。

我在使用indigo和一个需要从XSD生成Java源代码的项目时遇到过同样的问题。 我可以通过提供缺少的生命周期映射来修复它,如本页所述

为了避免弄乱pom文件,我建议你去Eclipse中的Show View→Markers,选择并删除适当的错误标记。

我今天遇到了这个问题。我使用的是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(如果没有,当执行“perform eclipse”时出现“error=2,没有这样的文件或目录”) 配置的JDK, Roo和Maven bin目录在我的PATH: 导出路径= / opt / jdk1.7.0_51 / bin:美元的道路 导出路径= / opt / spring-roo-1.2.5.RELEASE / bin:美元的道路 导出路径= / opt / apache-maven-3.2.1 / bin:美元的道路

我的配置如下: (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,但我猜它工作):导入>现有项目到工作区

大多数答案都是关于忽略错误和其他建议的解决方案在我的案例中不起作用[对于maven-compiler-plugin]。我对这个问题的解决方案是:

进入系统中的.m2本地存储库,找到org.apache.maven.plugins目录: C:\Users\【用户名】\ .m2 \ maven存储库\ org \ apache \ \ plugins 从这个目录中删除maven-compiler-plugin文件夹 您可能需要关闭IDE (Eclipse) 之后,再次打开IDE并通过Maven更新项目 在Eclipse中右键单击项目根目录,选择Maven -> Update project…