如何让Eclipse识别来自SBT的依赖项

时间:2012-01-30 20:29:36

标签: eclipse scala sbt sbteclipse

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

感谢

6 个答案:

答案 0 :(得分:87)

如果您使用的是sbteclipse插件,则可以通过简单的方式实现。在sbt类型:

  

重载
  eclipse with-source = true

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

答案 1 :(得分:32)

这可能不是您正在寻找的答案,我承认它不优雅但它目前适用于我,这意味着我认为我需要更少的时间来定期执行以下操作而不是研究和寻找更优雅溶液

我假设您使用的是sbt-eclipse插件(https://github.com/typesafehub/sbteclipse)。当我向项目添加新的依赖项时(实际上非​​常罕见)我只是从插件中重新生成我的eclipse项目文件。这样做的缺点是我有一个多模块项目,在我在eclipse中刷新项目后,我需要在eclipse构建路径编辑器中重新添加项目间依赖项。

就像我提到的那样,它非常hacky,但总而言之,我真的不会花那么多时间去做。它不漂亮,但它有效。

祝你好运, 安迪

答案 2 :(得分:14)

我使用Eclipse的Apache IvyDE插件,我对这种方法运气不错。它只有described in the old sbt docs,但适用于sbt 0.11

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

运行sbt命令deliver-local - 这将创建依赖项的XML常春藤文件。

在Eclipse中,在Project / Properties - Java Build Path - Libraries下,单击“Add Library”并选择“IvyDE Managed Dependencies”,然后选择文件target / scala-2.9.1 / ivy- projectversion .XML

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

答案 3 :(得分:7)

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

sbt eclipse

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

回到eclipse,选择项目并按f5 ,这将重新加载引用的库。

答案 4 :(得分:1)

您只需从项目主页执行:

sbt "eclipse with-source=true"

或输入sbt控制台并写:

eclipse with-source=true
顺便说一句:我不知道Jan 12是否发生了变化,但现在看起来更简单了。

答案 5 :(得分:0)

以下适用于我:

1)在Eclipse中关闭项目

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文件夹,缓存,然后导航到我通过sbt添加的库

6)右键单击jar文件,选择属性,复制路径和jar文件名,并将其替换为我在步骤4中复制的条目

7)保存.classpath

8)在Eclipse上打开我的项目

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