java – m2e仍然提供错误说“插件执行未被生命周期配置覆盖”,即
我正在构建一个插件来进行代码生成.
我已经按照这里的步骤来了解如何创建插件: 插件来源: /** * @goal helloworld * @phase generate-sources */ public class SampleMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException,MojoFailureException { getLog().info("Hello,world."); } } 用法: <plugins> <plugin> <groupId>com.sample</groupId> <artifactId>sample-maven-plugin</artifactId> <version>0.0.1</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>helloworld</goal> </goals> </execution> </executions> </plugin> </plugins> 该插件本身可以正常工作,但在Eclipse中,我一直得到“生命周期未涵盖”的错误. 我通读了“How to solve “Plugin execution not covered by lifecycle configuration” for Spring Data Maven Builds”,我认为如果我创建了自己的插件并设置了@phase和@goal注释,它就会摆脱这个错误.我真的不想在pom中放入“lifecycleMappingMetadata”节点. 有人对此有任何建议吗?我需要为m2e编写一些特殊内容才能让错误消失吗? 解决方法
K. Claszen的回答是正确的,但我想填写一些额外的细节.
A.为什么m2e喜欢这个? 这种行为的关键是防止m2e通过增量(并且可能永无止境)的变化消耗太多资源. B. m2e版本1.1还不是’发布’ 目前m2e 1.1仍然是一个“里程碑”. 现在,除了在其pom.xml文件中插入“快速修复”代码段之外,这对您的用户来说可能更麻烦.但是,从长远来看,使用它是件好事. C.使你的maven插件m2e-1.1兼容的概述 正如K. Claszen所描述的,大部分信息都在这里:M2E compatible maven plugins. 一些关键点: >执行信息在文件中定义 – src / main / resources / META-INF / m2e / lifecycle-mapping-metadata.xml – 有关格式,请参阅M2E compatible maven plugins. >指定对org.codehaus.plexus / plexus-build-api / 0.0.1的依赖关系(撰写时的当前内容) D.替代品 如果1.1对您的用户来说不是一个现实的选择,您可以: >创建一个’M2E Extension Eclipse插件'(!!),又称’M2E Connector‘,并将其贡献给市场.祝你好运.>通知您的插件用户选择M2E’快速修复’,然后手动更改< ignore /> line to< execute />.还有其他SO问题/答案涵盖了这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |