`
Josh_Persistence
  • 浏览: 1650017 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Maven自动管理Jar包 - Eclipse中会优先关联到相同的project而不是指定的jar包

阅读更多

大家都知道,从Maven2 开始,Maven可以自动管理Java应用所引用的开发包 (Jar包),即官方所说的transitive dependency (可传递的依赖管理),也就是说Java应用只需要定义其直接引用的Jar包依赖,而无需定义Java应用所引用的所有Jar 依赖。Maven 2可以自动添加Java应用直接引用库所依赖的其它Jar包。

 

但是今天在开发项目时,在Eclipse中执行Unit Test或者Main方法时碰到了一个怪异的Exception:Porject XXX is missing required Java project YYY. 如下图。



 

这让我 感觉到很奇怪,因为我在tools-cms-client这个project中引入的是一个叫cms-java-typesafe-api的jar包,而不是引入这个project,如下pom定义:



 

后来我才记得我在相同的workspace中有一个project名字就叫cms-java-typesafe-api(该project和cms-java-typesafe-api.jar有相同的三维:groupId, artifactId, version),在Eclipse中如果不关闭该project,eclipse会显示的引入该project中的类,而不是cms-java-typesafe-api.jar中的类。然后显然要做的事情就是把cms-java-typesafe-api project关闭。但是虽然把该项目关闭了,在Eclipse中运行的时候,他还会优先的引用该project中的类,而此时该project又关闭了,所以在Eclipse中就出现了上面的Exception:Porject XXX is missing required Java project YYY

 

 

最好的解决办法就是换一个workspace,不要在有这个project:cms-java-typesafe-api的workspace 中的另一个project中引入一个名叫cms-java-typesafe-api.jar 的jar包。

  • 大小: 3.3 KB
  • 大小: 12.5 KB
1
6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics