首页 文章

使用父pom中的pluginManagement在eclipse中生命周期配置错误未涵盖插件执行

提问于
浏览
17

我在pluginManagement标签中的父pom.xml中有jaxws-maven-plugin,我指的是这个插件在pom中 .

mvn clean install运行正常 . 但是,eclipse抱怨“生命周期配置未涵盖插件执行:org.codehaus.mojo:jaxws-maven-plugin:1.12:wsimport(执行:FirstWsdl,阶段:生成源)” .

你能建议如何在eclipse中避免这个错误吗?

父母pom

<pluginManagement>
    <plugins>
    ...
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <version>1.12</version>
        <executions>
            <execution>
                <id>FirstWsdl</id>
                <goals>
                    <goal>wsimport</goal>
                </goals>
                <phase>generate-sources</phase>
                <configuration>
                    <wsdlLocation>location/file.wsdl</wsdlLocation>
                    <wsdlFiles>
                        <wsdlFile>file.wsdl</wsdlFile>
                    </wsdlFiles>
                    <packageName>com.xxx.package</packageName>
                </configuration>
            </execution>

        </executions>
        <configuration>
            <sourceDestDir>${basedir}/generated</sourceDestDir>
            <verbose>true</verbose>
            <extension>true</extension>
            <keep>true</keep>
            <vmArgs>
                <vmArg .../>
            </vmArgs>
        </configuration>

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

孩子pom

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
    </plugin>
</plugins>

我看了这个问题并回复How to solve "Plugin execution not covered by lifecycle configuration" for Spring Data Maven Builds,但是,我应该在父母和子pom中使用pluginManagement来避免这个错误吗?

4 回答

  • 20

    这应该是:

    维基页面“M2E plugin execution not covered”中记录了

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

    通过在父pom中添加lifecycleMappingMetadata来

    • .

    • 或用 <pluginManagement> 标签封闭插件(在两个pom中) .

    That thread为您的特定错误消息添加了更多详细信息:

    当在“Maven” - >“Lifecyle Mapping”下查看项目属性中的Eclipse-UI时(选中“显示生命周期阶段”复选框并禁用“显示忽略的执行”),我看到以下内容 . 据我所知,这个文件显示了Eclipse构建生命周期(运行时/增量)与其绑定的Maven插件之间的映射 . 目前,它不包含“jax-ws”插件,其目标分别为“wsimport” . 问题是你在pluginManagement部分声明了jax-ws插件 . 要获得绑定到阶段,它应该在build / plugins中 . 从CLI执行Maven构建也不起作用,所以我怀疑你没有做标准的“mvn install”?要从Eclispe内部执行Maven执行工作,您无需执行任何操作 . 但是如果你想在IDE中获得增量/运行时支持,你应该得到合适的m2e连接器 . 如果你在Eclipse中的POM编辑器中查看pom,插件执行应该用红色错误X标记 . 将鼠标悬停在它上面你应该找到一个选项(“发现新的m2e连接器”) .

  • 0

    如果你找不到连接器,你可以在eclipse中关闭这个错误,因为文档说:

    要从Eclispe内部执行Maven执行工作,您无需执行任何操作 .

    所以转到Eclipse: Preferences -> Maven -> Error/Warnings 并在选项中将Error更改为Warning: Plugin execution not converted by lifecycle configuration

  • 0

    https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html是解释所有内容的原始页面 . 在父母中定义它应该足够其子女 .

  • 15

    转到pom.xml并右键单击>添加依赖关系>输入组ID和工件ID单击确定 . 这将解决“生命周期未涵盖的插件执行”问题 .

相关问题