我在Eclipse中有一个Maven项目。我已经将Apache的libthrift添加为依赖项,它在pom.xml中看起来像:
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.9.1</version>
<type>pom</type>
</dependency>
到目前为止,大多数事情看起来都很正常。浏览我的依赖树并查看我的有效POM&#39;没有任何惊喜。但是,当我添加一个简单的Thrift生成的Java接口(使用Thrift 0.9.1创建)时,我遇到了一些错误,其中只有几个类无法解析。然后我查看了我的Maven依赖项,我项目中包含的jar,并注意到libthrift-0.9.0.jar
。我能看到的其他任何地方都有正确的版本,但这里我们有错误的jar。
查看我的.m2存储库,我看到两个版本都有目录,旧版本(不正确)的目录中有更多内容(正确的版本甚至没有包含jar) :
~/.m2/repository/org/apache/thrift/libthrift $ ls
0.9.0/ 0.9.1/
~/.m2/repository/org/apache/thrift/libthrift $ ls 0.9.0
_maven.repositories libthrift-0.9.0.jar
_remote.repositories libthrift-0.9.0.jar.sha1
libthrift-0.9.0-javadoc.jar libthrift-0.9.0.pom
libthrift-0.9.0-javadoc.jar.sha1 libthrift-0.9.0.pom.sha1
libthrift-0.9.0-sources.jar.lastUpdated m2e-lastUpdated.properties
~/.m2/repository/org/apache/thrift/libthrift $ ls 0.9.1
_maven.repositories libthrift-0.9.1.pom libthrift-0.9.1.pom.sha1
我从未安装过0.9.0或以任何方式引用它,这让我相信它是Maven,Eclipse或Thrift问题。
所以在某个地方,看起来某些东西引用了错误的版本,但我无法弄清楚这个错误发生的位置。我可以想象这很容易重现,虽然除了OS X Mavericks之外我还没有运行它。
除了提交错误报告之外,有没有办法在Eclipse / Maven中同时解决这个问题,而无需在外部下载/添加jar?我应该补充一点,我不是Java的老手,所以也许我错过了一些明显的东西。
感谢您的任何见解!