2009年5月10日星期日

Maven中依赖强制指定

一般的依赖机制可以参阅这里
今天碰到的一个比较郁闷的问题是这样的:
在一个开源项目中运行mvn eclipse:eclipse,结果返回出错,原因是找不到org.codehaus.plexus.utils.IOUtil这个类,但是后面提示跟着好几个备选的jar包,其中第一个是来自maven2.1.0的maven-2.1.0-uber.jar,里面确实有org.codehaus.plexus.utils包,但是没有IOUtil这个类;第二个是来自org.codehaus.plexus.plexus-utils 1.4.1的jar包,里面包含了IOUtil等类,而Maven缺省使用了第一个,也就是maven-2.1.0-uber.jar包,于是提示说ClassNotFound。

郁闷了一天后,晚上散步回来偶然发现Appfuse的basicspring pom配置中有对插件依赖进行配置,于是尝试了一下,果然,可以强制指定插件依赖包,狂喜~