如何让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命令reload
和deliver-local
。 然后在Package Explorer中右键单击项目的Ivy库 – 它将被称为“target / scala-2.9.1 / ivy – projectversion .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日起,事情已经发生了变化,但是现在看起来更简单了。