摆脱POM没有发现警告org.eclipse.m2e:生命周期映射

意图让m2e 1.0正常工作,我不得不指定生命周期映射:

<pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.bsc.maven</groupId> <artifactId>maven-processor-plugin</artifactId> <versionRange>[2.0.2,)</versionRange> <goals> <goal>process</goal> </goals> </pluginExecutionFilter> <action> <execute /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> 

但是我得到这个警告:

  [WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is missing, no dependency information available [WARNING] Failed to retrieve plugin descriptor for org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 

如果我运行一些特定的Maven任务,例如mvn clean install findbugs:findbugs (如果我只运行mvn clean install那么就没有这样的消息)

我知道问题在于这个POM不存在,因为它只被定义为保存映射信息。 ( 找不到m2e生命周期映射 )

无论如何,我想保持我的构build清洁,没有任何警告,那么我怎么能摆脱这个具体的? ( 我的CI服务器检查没有警告。

我使用Maven 3.0.2,并尝试Maven 3.0.3,但结果相同。

我的团队通过在configuration文件中包装相关configuration来解决此问题:

 <profile> <id>only-eclipse</id> <activation> <property> <name>m2e.version</name> </property> </activation> <build> <pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> ... </configuration> </plugin> </plugins> </pluginManagement> </build> </profile> 

这是一个WONTFIX分辨率的已知错误 。 build议的解决scheme在我看来是最简单的:

 mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping \ -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo 

install这个项目。

这个解决scheme现在已经被弃用了,我build议使用@ctrueden的“profile”解决scheme,这是可以接受的答案!

虽然不是最干净的解决scheme,但是当您在公司中使用存储库pipe理器或独自使用时,同时您可以这样做: – 签出https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin – 当你自己运行mvn install时 – 运行mvn deploy -DaltDeploymentRepository=REPO_ID::default::YOUR_THIRDPARTY_REPO_URL当你拥有像Nexus或者Artifactory这样的版本库pipe理器。 – 请参阅https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin/blob/master/README.creole

问候Mirko

现在有了更好的解决scheme(仅适用于Eclipse中的错误消息)。

CTR + 1上的错误插件执行不包含在生命周期configuration中:org.codehaus.mojo:buildnumber-maven-plugin:1.1:create-timestamp(execution:default-create-timestamp,phase:validate)然后select这个选项:

在这里输入图像说明

这可以与org.eclipse.m2e.editor.xml_1.2.0.20120903-1050.jar插件(也许更早)

m2eclipse 1.7.0引入了一个替代scheme,即一个XML处理指令。

在最初的例子中,你只需简单的“注释” maven-processor-pluginprocess目标的每一个<execution>

 <?m2e execute?> 

有关语法和更多选项的更多详细信息,请参阅发行说明 。