我在学习 Scala 方面玩得很开心,但在掌握如何设置开发环境方面却遇到了最困难的时间。
在 ruby 中
my_app/
|
+-- Gemfile
+-- app.rb
source :rubygems
gem "mechanize"
require "mechanize"
agent = Mechanize.new
page = agent.get("http://google.com")
$ bundle install
$ ruby app.rb
sbt 的 Scala 等价物是什么?
我正在阅读有关 sbt 以及包/导入/jar 依赖项在 Java/Scala 中如何工作的信息,但我似乎无法过滤掉最基本的必需品。
sbt
并下载 Mechanize 依赖项,如何识别必要的 import
你需要让这个工作的声明?val agent = new MechanizeAgent
val page: HtmlDocument = agent.get("http://www.google.com")
我通过手动导入 .jars 然后从库中导入包,直到编译器/运行时错误停止并且代理正常工作,从而在 Eclipse 中实现了上述工作。但那次经历令人沮丧,我来这里是为了忏悔。
这个问题的意图 :Java 生态系统/工作流程对我来说是压倒性的,因为我已经习惯了 Ruby 轻松、无 IDE 的工作流程。我认为一个简单的骨骼等效物会给我一个开始构建的地方。
理想情况下,我希望在依赖 Eclipse 之前只使用 Vim 和命令行进行 Scala 开发。
最佳答案
sbt 使用名为 ivy 的库从主 maven 存储库导入项目。 sbt 有一些预配置可以使用的存储库,包括主 maven 存储库。
一旦这些库被“解析”(下载到您的计算机并连接到您的项目),eclipse 插件将为生成的 eclipse 项目中的每个 jar 创建依赖项。
这是您如何配置它。
sbt 托管依赖项
http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#adding-library-dependencies
在项目的 build.sbt 文件中添加依赖项。如果添加依赖于特定 Scala 版本的依赖项,请在组名和工件名称之间使用两个 %%。不要忘记在 build.sbt 文件中的每个命令之间添加一个空行。
libraryDependencies += "com.gistlabs" % "mechanize" % "0.11.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "1.6.1" % "test"
通过运行 update 命令更新依赖项:
$ sbt update
sbt Eclipse 插件
https://github.com/typesafehub/sbteclipse/wiki/Installing-sbteclipse
您可以通过在 ~/.sbt/plugins/plugins.sbt 中创建一个文件并将此行放入其中来全局安装 sbt eclipse 插件:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")
每当您添加或更新依赖项时,请运行以下命令并刷新您的 eclipse 项目:
$ sbt eclipse
关于scala - 什么是 Scala + sbt 工作流程,相当于带有 Gemfile 的 Ruby + Bundler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614974/