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

问题描述 投票:0回答:4

我在pluginManagement标签的父pom.xml中有jaxws-maven-plugin,我在子pom中引用这个插件。

mvn clean install 运行良好。但是,日食抱怨说 “生命周期配置未涵盖插件执行:org.codehaus.mojo:jaxws-maven-plugin:1.12:wsimport(执行:FirstWsdl,阶段:generate-sources)”。

你能建议如何在 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>   

儿童绒球

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

我查看了这个问题并回复如何解决Spring Data Maven Builds的“生命周期配置未涵盖的插件执行”,但是,我应该在父pom和子pom中使用pluginManagement来避免此错误吗?

java eclipse maven
4个回答
37
投票

如果找不到连接器,可以在 Eclipse 中关闭此错误 因为正如文档所说:

要从 Eclispe 中执行 Maven,您无需执行任何操作。

所以转到 Eclipse:

Preferences -> Maven -> Error/Warnings
并将选项中的错误更改为警告:
Plugin execution not converted by lifecycle configuration


25
投票

这应该是:

  • 记录在维基页面“M2E插件执行未涵盖”:

    项目构建生命周期映射可以在项目的

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

  • 参见“如何解决 Spring Data Maven 构建的“生命周期配置未涵盖的插件执行””(您参考)。

    • 通过在父pom中添加lifecycleMappingMetadata。
    • 或者用
      <pluginManagement>
      标签括住插件(在两个 pom 中)。

该线程为您的特定错误消息添加了更多详细信息:

在“Maven”->“生命周期映射”下的项目属性中查看 Eclipse-UI 时(选中“显示生命周期阶段”复选框并禁用“显示忽略的执行”),我看到以下内容。
据我了解,该文件显示了 Eclipse 构建生命周期(运行时/增量)与其绑定的 Maven 插件之间的映射。
目前,它不包含“

jax-ws
”插件及其目标“
wsimport
”。

问题是您在

jax-ws
部分声明了
pluginManagement
插件。
要绑定到某个阶段,它应该位于构建/插件中。
从 CLI 执行 Maven 构建也不起作用,所以我怀疑您没有执行标准的“mvn install”?

要从 Eclispe 中执行 Maven,您无需执行任何操作。
但如果您想在 IDE 中获得增量/运行时支持,您应该获得适当的 m2e 连接器。如果您在 Eclipse 的 POM 编辑器中查看 pom,插件执行应该标有红色错误 X。将鼠标悬停在该错误上,您应该会看到一个选项来查找一个(“发现新的 m2e 连接器”)。


0
投票

https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html是解释这一切的原始页面。在父级中定义它对于子级来说应该足够了。


-1
投票

转到

pom.xml
并右键单击>添加依赖项>输入组ID和工件ID>单击确定。这将解决
Plugin execution not covered by lifecycle
问题。

© www.soinside.com 2019 - 2024. All rights reserved.