55

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

谢谢

4

6 回答 6

87

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

用-source = true重新加载
eclipse

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

于 2012-12-07T07:03:25.477 回答
32

这可能不是您正在寻找的答案,我承认它并不优雅,但它目前对我有用,这意味着我认为定期执行以下操作而不是研究和寻找更优雅的解决方案所需的时间更少。

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

就像我提到的那样,它非常hacky,但总而言之,我真的不会浪费太多时间来做这件事。它不漂亮,但它有效。

祝你好运,安迪

于 2012-01-30T20:47:29.957 回答
14

我为 Eclipse 使用了Apache IvyDE插件,而且我对这种方法有更多的运气。它仅在旧 sbt docs 中描述,但适用于 sbt 0.11

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

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

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

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

于 2012-02-01T19:54:44.547 回答
7

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

sbt eclipse

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

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

于 2014-01-13T09:19:40.257 回答
1

您所需要的只是从您的项目主页执行:

sbt "eclipse with-source=true"

或输入sbt控制台并写入:

eclipse with-source=true

顺便说一句:我不知道从 12 年 1 月起是否有所改变,但现在看起来要简单得多。

于 2017-03-12T23:27:34.553 回答
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 中现在提供了新的依赖项。

于 2013-05-09T17:15:45.690 回答