我正在尝试使用Scala的调度库,我来自Python背景,我可以
pip install dispatch
然后从那里导入。我假设Scala不是这种情况。 dispatch site有一个用sbt下载调度的脚本,但我的IDE无法识别该库。如何从项目中访问库? (我正在使用IntelliJ)
答案 0 :(得分:6)
JVM社区实际上没有“安装”库的概念。您可以在构建工具(对于Scala,标准是SBT)中声明它们,并根据需要下载它们。 SBT使用Ivy,它会在~/.ivy2/cache
中保留已下载的依赖项的本地缓存,以防万一您对保存下载的位置感到好奇。
创建一个名为build.sbt
的文件,其中包含以下行:
libraryDependencies += "net.databinder.dispatch" %% "dispatch-core" % "0.11.0"
然后,您的IDE设置将基于您的构建配置。有两种方法:
使用可以配置IDE的构建工具的插件。我相信这仍然是人们用来从Maven配置创建Eclipse项目的策略。 IntelliJ的最佳SBT插件是gen-idea。我推荐这种方法用于IntelliJ 12。
使用可以理解构建配置的IDE插件。从IntelliJ 13开始,Scala插件可以很好地支持SBT。安装Scala插件,“打开”build.sbt
文件,好像它是一个IntelliJ项目,然后你将获得一个基于该构建配置的新项目。
答案 1 :(得分:4)
在Scala世界中,SBT是库存构建工具,它提供了从Maven或Ivy2存储库中检索依赖关系的功能。因此,当您必须以某种方式找到所需的依赖关系时,一旦您将其合并到项目中的过程就像您所说明的Python构造一样简单。
至于查找依赖项,大多数Scala项目将包含您在项目Web站点上需要的某些位置的SBT依赖项。在其他情况下,您可以使用其中一个公共Maven搜索服务。我同时使用MvnRepository和Maven Central Repository。前者包括其所有工件的SBT依赖声明。
答案 2 :(得分:2)
如果你有Dispatch jar文件,你可以配置Intellij直接使用jar,你可以添加你的项目:
答案 3 :(得分:0)
更简单一点,您可以克隆我的项目skeleton,并将此SBT依赖项添加为libraryDependency:
“net.databinder.dispatch”%%“dispatch-core”%“0.11.0”
重新加载项目,你准备好了。它支持使用sbt,intellij或eclipse的工作流,全部由SBT管理。