如何让Eclipse从SBT中识别依赖关系

我想弄清楚如何让Eclipse识别使用SBT检索的依赖关系? SBT下载正确的依赖关系,并把它们放在我的〜/ .ivy目录中,但eclipse没有看到它们。 有没有办法做到这一点?

谢谢

这可能不是你正在寻找的答案,我承认它不是优雅的,但它目前适用于我,这意味着我认为定期做下列事情需要更less的时间,而不是研究和寻找更优雅的解决scheme。

我假设你正在使用sbt-eclipse插件( https://github.com/typesafehub/sbteclipse )。 当我添加新的依赖到我的项目(这实际上很罕见),我只是从插件重新生成我的eclipse项目文件。 这样做的缺点是我有一个多模块项目,在eclipse中刷新项目之后,我需要在eclipse构buildpath编辑器中重新添加项目间依赖关系。

就像我刚才提到的那样非常不好,但是总的来说,我真的没有那么多时间去做。 这不是漂亮,但它的作品。

安迪,祝你好运

如果你使用的是sbteclipse插件,可以通过简单的方式实现。 在sbttypes:

重装
eclipse with-source = true

然后在eclipse中,在项目文件夹上按F5来刷新它。 或者右键单击并select“刷新”。 只是工作。

我使用Eclipse的Apache IvyDE插件,我已经有了更多的运气。 这只是在旧的文档中描述 ,但与0.11工作

首先,在Eclipse中安装IvyDE插件并重新启动。

运行sbt命令deliver-local – 这将创build您的依赖关系的XML常青藤文件。

在Eclipse中,在你的Project / Properties – Java Build Path – Libraries下,点击“Add Library”并select“IvyDE Managed Dependencies”,然后select文件target / scala-2.9.1 / ivy- projectversion .xml

当您向build.sbt添加新的依赖项时,请再次运行sbt命令reloaddeliver-local 。 然后在Package Explorer中右键单击项目的Ivy库 – 它将被称为“target / scala-2.9.1 / ivyprojectversion .xml [compile,test]”,然后单击第二个“Refresh”菜单项在“刷新”和“重新加载设置”之间 – 不是 “F5刷新”)。

在命令提示符下,转到项目文件夹并键入

 sbt eclipse 

这应该在eclipse项目中生成适当的.classpath条目。

回到日食,select项目, 然后按F5 ,这将重新加载引用的库。

以下为我工作:

1)在Eclipse中closures项目

2)在我的文件浏览器中,浏览到我的Eclipse项目,确保隐藏的文件是可见的

3)在一个简单的文本编辑器中打开.classpath

4)复制底部条目。 例如,在我当前的项目中,它是<classpathentry path="/home/natalie/.ivy2/cache/org.scalatest/scalatest_2.9.1/jars/scalatest_2.9.1-1.8.jar" kind="lib"></classpathentry>

5)导航到我的.ivy文件夹,caching,然后到我通过sbt添加的库

6)右键单击jar文件,select属性,复制path和jar文件名,并将其replace到我在步骤4中复制的条目中

7)保存.classpath

8)在Eclipse上打开我的项目

Eclipse中现在提供了新的依赖关系。

所有你需要的是从你的项目家里执行:

 sbt "eclipse with-source=true" 

或进入sbt控制台并写入:

 eclipse with-source=true 

顺便说一句:我不知道从1月12日起,事情已经发生了变化,但是现在看起来更简单了。