Java eclipse中的生命周期配置错误未涵盖插件执行,父pom中存在插件管理
我在pluginManagement标记的parent pom.xml中有jaxws-maven插件,我指的是子pom中的这个插件 mvn清洁安装运行正常。但是,eclipse抱怨说 “生命周期配置未涵盖插件执行:org.codehaus.mojo:jaxws-maven-Plugin:1.12:wsimport(执行:FirstWsdl,阶段:生成源代码)” 您能建议如何在eclipse中避免这个错误吗 母体聚甲醛Java eclipse中的生命周期配置错误未涵盖插件执行,父pom中存在插件管理,java,eclipse,maven,Java,Eclipse,Maven,我在pluginManagement标记的parent pom.xml中有jaxws-maven插件,我指的是子pom中的这个插件 mvn清洁安装运行正常。但是,eclipse抱怨说 “生命周期配置未涵盖插件执行:org.codehaus.mojo:jaxws-maven-Plugin:1.12:wsimport(执行:FirstWsdl,阶段:生成源代码)” 您能建议如何在eclipse中避免这个错误吗 母体聚甲醛 <pluginManagement> <plugin
<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>
...
org.codehaus.mojo
,但是,我应该在父pom和子pom中同时使用pluginManagement来避免这个错误吗?是解释这一切的原始页面。在父级中定义它应该足够其子级使用。这应该是:
- 记录在wiki页面“”中:
项目构建生命周期映射可以在项目的
pom.xml
中配置,由Eclipse插件提供,或者默认为m2e附带的常用Maven插件。
我们称这些为“生命周期映射元数据源”
m2e将为所有在映射元数据源中没有生命周期映射的插件执行创建如下错误标记
- 如“”(您引用的)所示
- 通过在父pom中添加lifecycleMappingMetadata
- 或者用
标记(在两个pom中)封装插件李>
向特定错误消息中添加更多详细信息:
在“Maven”->“生命周期映射”(选中“显示生命周期阶段”复选框并禁用“显示忽略的执行”)下的项目属性中查看Eclipse UI时,我看到了以下内容。
据我所知,该文件显示了Eclipse构建生命周期(运行时/增量)与其绑定的Maven插件之间的映射。
目前,它不包含“jax-ws
”插件及其目标“wsimport
”
问题是在pluginManagement
部分声明了jax-ws
插件。
要获得到某个阶段的绑定,它应该在构建/插件中。
从CLI执行Maven构建也不起作用,所以我怀疑您没有执行标准的“mvn安装”
要让Maven执行从Eclispe内部开始工作,您无需做任何事情。
但是,如果您想在IDE中获得增量/运行时支持,您应该获得适当的m2e连接器。如果您在Eclipse中的pom编辑器中查看pom,插件执行应该标记为红色错误X。将鼠标悬停在该位置上,您应该可以找到一个选项(“发现新的m2e连接器”)
如果找不到连接符,可以在eclipse中关闭此错误
因为正如一份文件所说:
要让Maven执行从Eclispe内部开始工作,您无需做任何事情
因此,转到Eclipse:首选项->Maven->Error/Warnings
并将选项中的Error改为Warnings:插件执行未通过生命周期配置转换
转到pom.xml,右键单击>添加依赖项>输入组Id和工件Id单击ok。这将解决“生命周期未涵盖的插件执行”问题 因此,唯一的方法似乎是在父pom中添加生命周期映射元数据,以忽略jax ws插件,如中所示。当我说发现新的m2e连接器时,eclipse无法为jax ws插件找到一个。但是,当我从CLI执行mvn clean安装时,ws-import目标正在运行。@是否希望添加生命周期映射元数据?是的,我同意,添加生命周期映射元数据似乎有效。这是我找到的最简单的解决方案,谢谢。我想这个答案应该标记为正确答案。
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
</plugin>
</plugins>