插件执行未被 eclipse 中的生命周期配置错误所覆盖,使用插件管理父 pom 中的管理

2022-09-01 21:51:23

我在父 pom 中有 jaxws-maven-plugin.xml插件管理标记中,我在子 pom 中引用了这个插件。

mvn 全新安装运行正常。但是,eclipse抱怨“生命周期配置未涵盖插件执行:org.codehaus.mojo:jaxws-maven-plugin:1.12:wsimport(执行:FirstWsdl,阶段:generate-sources)”。

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

父项

<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中使用插件管理来避免此错误吗?


答案 1

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

要让埃克利斯佩内部的Maven执行工作,你不必做任何事情。

所以去Eclipse:并将错误更改为警告选项:Preferences -> Maven -> Error/WarningsPlugin execution not converted by lifecycle configuration


答案 2

这应该是:

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

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

  • 在“如何解决Spring Data Maven Builds的生命周期配置未涵盖的插件执行”(您引用)中进行了说明。

    • 通过在父 pom 中添加生命周期映射元数据。
    • 或者通过将插件与标签(在两个pom中)括起来。<pluginManagement>

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

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

问题是您在该部分中声明了插件。
要获得一个阶段的绑定,它应该在构建/插件中。
从CLI执行Maven构建也不起作用,所以我怀疑你没有做标准的“mvn安装”?jax-wspluginManagement

要让埃克利斯佩内部的Maven执行工作,你不必做任何事情。
但是,如果您希望在IDE中提供增量/运行时支持,则应获得正确的m2e连接器。如果你在 Eclipse 的 POM 编辑器中查看 pom,插件执行应该标有红色错误 X.将鼠标悬停在上面,你应该得到一个找到一个的选项(“发现新的 m2e 连接器”)。


推荐