有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

m2e的生命周期配置未涵盖java插件mavenantrunplugin执行

我知道,但我仍在努力解决这个问题。当我将项目加载到eclipse中时,会出现以下异常:

Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.7:run (execution: generate-webapp-name, phase: compile)

我的maven项目由许多模块组成(>;200),它会导致所有模块出现问题

我试图忽略我的pom.xml(在父模块中)中的runcompile目标:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-antrun-plugin</artifactId>
                                <versionRange>[1.7,)</versionRange>
                                <goals>
                                    <goal>compile</goal>
                                    <goal>run</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore/>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

但它仍然不起作用


共 (1) 个答案

  1. # 1 楼答案

    你必须指定你为maven antrun插件设定的目标(在我的例子中,run)应该执行。对于访问此页面的任何人,请在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.apache.maven.plugins</groupId>
                                    <artifactId>maven-antrun-plugin</artifactId>
                                    <versionRange>[1.7,)</versionRange>
                                    <goals>
                                        <goal>run</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    

    资料来源here

    值得一提的是,我使用了一个非常简单的ant代码。我使用的插件代码如下。我使用了deploy阶段,但是如果你愿意,可以使用另一个阶段

    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <id>antrun.package</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <mkdir dir="${destinationBasePath}/WEB-INF/classes"/> 
                            <copy todir="${destinationBasePath}\WEB-INF\classes">
                                <fileset dir="${basedir}/target/classes" includes="**" />
                            </copy>
                        </target>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>