【发布时间】:2012-02-22 15:05:21
【问题描述】:
我想弄清楚如何让 Eclipse 识别使用 SBT 检索的依赖项? SBT 下载正确的依赖项并将它们放在我的 ~/.ivy 目录中,但 eclipse 看不到它们。有没有办法做到这一点?
谢谢
【问题讨论】:
-
你仍然接受旧答案而不是新答案吗?
标签: eclipse scala sbt sbteclipse
我想弄清楚如何让 Eclipse 识别使用 SBT 检索的依赖项? SBT 下载正确的依赖项并将它们放在我的 ~/.ivy 目录中,但 eclipse 看不到它们。有没有办法做到这一点?
谢谢
【问题讨论】:
标签: eclipse scala sbt sbteclipse
如果您使用的是 sbteclipse 插件,它可以通过简单的方式实现。在 sbt 类型中:
重新加载
eclipse with-source=true
然后在 Eclipse 中,在项目文件夹上按 F5 以刷新它。或者右键单击并选择“刷新”。刚刚好。
【讨论】:
这可能不是您正在寻找的答案,我承认它并不优雅,但它目前对我有用,这意味着我认为定期执行以下操作而不是研究并找到更优雅的方法需要更少的时间解决方案。
我假设您使用的是 sbt-eclipse 插件 (https://github.com/typesafehub/sbteclipse)。当我向我的项目添加新的依赖项时(这实际上很少见),我只需从插件重新生成我的 eclipse 项目文件。这样做的缺点是我有一个多模块项目,在 eclipse 中刷新项目后,我需要在 eclipse 构建路径编辑器中重新添加项目间依赖项。
就像我提到的那样,它非常 hacky,但总而言之,我真的不会浪费太多时间来做这件事。它不漂亮,但很有效。
祝你好运, 安迪
【讨论】:
我为 Eclipse 使用了 Apache IvyDE 插件,而且我对这种方法有更多的运气。它只是 described in the old 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 em>.xml
当您向 build.sbt 添加新的依赖项时,再次运行 sbt 命令 reload 和 deliver-local。然后在 Package Explorer 中右键单击项目的 Ivy 库 - 它将被称为“target/scala-2.9.1/ivy-projectversion.xml [compile,test]”,然后单击第二个“刷新”菜单项(在“刷新”和“重新加载设置”之间 - 不是“F5 刷新”)。
【讨论】:
在命令提示符下进入项目文件夹并输入
sbt eclipse
这应该会在 eclipse 项目中生成适当的 .classpath 条目。
回到eclipse,选择项目并按f5,这将重新加载引用的库。
【讨论】:
您只需要从项目主页执行:
sbt "eclipse with-source=true"
或输入sbt控制台并写入:
eclipse with-source=true
顺便说一句:我不知道从 12 年 1 月起是否发生了一些变化,但现在看起来要简单得多。
【讨论】:
以下对我有用:
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 中现在提供了新的依赖项。
【讨论】: