问题 如何只使用一个scala库进行maven / eclipse / scala


我已经配置了一个项目来使用scala / maven / Eclipse。因为我在构建路径上需要一个scala库,而scalatest也使用自己的scala库,我收到此警告:

在构建路径中找到了多个scala库,全部都带有   兼容版本。尝试这不是最佳配置   限制到构建路径中的一个scala库。

我不认为我可以删除此警告,因为我需要两个库 - 一个用于Maven,另一个用于Eclipse。这似乎没有造成任何问题所以我只能接受它吗?是否有一个替代配置,它只为Maven和Eclipse使用一个scala库?

如果我从项目中删除scala库,我收到错误:

在类路径上找不到Scala库。验证您的构建路径!

由于某种原因,Eclipse要求scala库位于构建路径上,即使它已作为Maven依赖项可用。


12521
2017-12-03 11:31


起源

您加载的项目可能包含类路径中的几个jar,其中包含scala库。 (发生在我身边一会儿,看到了这个确切的信息......包括更仔细的罐子,即使用“薄”罐而不是独立的“胖”罐子解决了问题...) - gilad hoch
为什么你需要在maven和eclipse之间使用不同的scala库? - Allen Parslow
如果maven只有一个scala-library,那么你没问题。使用maven eclipse插件 mvn eclipse:eclipse 为固定项目设置生成eclipse项目文件。 - gilad hoch


答案:


没有什么可担心的。 Eclipse警告你,你有几个 scala-library.jar你的类路径,但只要它们是相同的版本,它并不重要。

如果其中一个出现分歧(例如,通过碰撞你的Scala版本号 pom 你遇到了麻烦:根据类路径顺序,IDE会从一个或另一个中获取类,并且在构建命令行时可能会得到不同的结果。

回到你的设置,你可以

  • 去除 Scala Library Eclipse项目中的classpath容器,只留下maven添加的jar。
  • 忽略警告

10
2017-12-03 16:20



请看编辑 - blue-sky
你正在用吗 2.0.2?你可能正在经历 这个问题,固定在2.1.0里程碑2。 - Iulian Dragos


冒昧地猜测,您是否使用预装了Scala 2.9的Eclipse Indigo和相应的Scala插件?如果这是您需要使用该库的原因,或许可以考虑使用Eclipse Juno?这就是我使用的东西,它同时适用于里程碑和夜间构建


0
2017-12-03 15:28



我在Indigo上单独安装了scala插件2.9。我不能用朱诺。 - blue-sky