maven 2.2.1转eclipse项目遇到的问题
在ubuntu中使用比较新的maven版本,2.2.1,将svn下载下来的项目转为eclipse项目,以前一直是这样:
mvn eclipse:eclipse
结果抛出了异常,通过-e参数可以打印出来:
Caused by: org.apache.maven.plugin.MojoExecutionException: Request to merge when ‘filtering’ is not identical. Original=resource src/main/resources: output=target/classes, include=[**/*.properties|hibernate.cfg.xml], exclude=[**/*.java], test=false, filtering=true, merging with=resource src/main/resources: output=target/classes, include=[], exclude=[**/*.java], test=false, filtering=false
at org.apache.maven.plugin.eclipse.EclipseSourceDir.merge(EclipseSourceDir.java:302)
更换为maven 2.1.0,问题依旧,以前用的版本是2.0.9。
应该是maven的eclipse插件更新版本后出现的问题,强制使用2.6版本插件,问题解决:
mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse
因为当前最新的eclipse插件是2.7版本,使用这个版本必须要做有关过滤的设置。也可以将强制版本的设置写到pom.xml文件中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.6</version>
这样直接用:
mvn eclipse:eclipse
也不会报错了。
那么,能否将pom.xml改为能兼容maven eclipse 2.7插件的形式呢?根据报错的提示,估计是和resources部分的标示符有关,原来pom.xml文件中有类似这样的内容:
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>hibernate.cfg.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
</resource>
有两个相同目录名称的resource节点,将后者注释掉后问题解决。另外,看看testResources是否也有类似情况,也需要注释掉。
这次eclipse插件升级是为了fix bug:
看来对resource的实现部分有影响。
这篇文章上的评论的 RSS feed TrackBack URI