首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是Scala + sbt工作流等价于Ruby + Bundler与一个Gemfile?

问什么是Scala + sbt工作流等价于Ruby + Bundler与一个Gemfile?
EN

Stack Overflow用户
提问于 2012-11-28 21:45:50
回答 2查看 1.1K关注 0票数 6

我正在学习Scala,但我最难掌握如何建立一个开发环境。

在Ruby中

  • 文件层次结构 我的应用程序/+ +-- Gemfile +-- app.rb
  • Gemfile 资料来源:宝石宝石“机械化”。
  • app.rb 需要“机械化”代理= Mechanize.new页=agent.get(“http://google.com"”)
  • 安装依赖项并运行它 $ bundle安装$ ruby app.rb

什么是与sbt等价的Scala?

我正在阅读关于sbt以及如何在Java/Scala中使用包/导入/jar依赖关系的文章,但我似乎无法过滤掉基本的基本需求。

  • 用Scala复制上述内容的最小文件层次结构是什么?
  • 下面是Maven上可用的Java机械化库:http://search.maven.org/#search|ga|1|mechanize
  • 一旦运行了sbt并下载了机械化依赖项,如何识别必要的import语句才能使其工作? val =新的MechanizeAgent val页面: HtmlDocument =agent.get(“http://www.google.com"”)

通过手动导入.jars,然后从库导入包,直到编译器/运行时错误停止,代理开始工作,我在Eclipse中实现了上述工作。但这种经历令人沮丧,我来这里是为了忏悔。

这个问题的意图:生态系统/工作流对于我来说是一个习惯于IDEless毫不费力的工作流程的人。我想一个简单的骨头就能给我一个开始建造的地方。

理想情况下,在依赖Eclipse之前,我想让Scala开发只使用Vim和命令行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-14 19:21:59

我想更进一步,而不是ffk的答案,做更多的手握,实际上提供了Ruby示例的直接转换到Scala + sbt。

  • 文件层次结构 爬虫/ +- build.sbt +- src/ +- main/ +- scala/ +- Crawler.scala
  • build.sbt libraryDependencies += "com.gistlabs“%”机械化“% "0.11.0”
  • Crawler.scala 导入com.gistlabs.mechanize.MechanizeAgent导入com.gistlabs.mechanize.document.Document对象爬行器扩展应用程序{ val代理=新的MechanizeAgent val页面:MechanizeAgent= agent.get("http://google.com")“}
  • 安装依赖项并运行它 $ sbt运行

要使项目可导入Eclipse或IntelliJ,您需要IntelliJ或sbt插件。但是,不必在每个新项目的每个build.sbt中声明这些插件,您可以在全局build.sbt中声明它们:

代码语言:javascript
复制
// in ~/.sbt/plugins/build.sbt
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")

然后,返回Scala应用程序的根目录:

代码语言:javascript
复制
$ sbt eclipse
or
$ gen-idea

之后,您应该能够在相应的IDE中打开它。

注意:每当您在build.sbt中添加依赖项时,都需要重新运行sbt eclipse/gen-idea命令,以便IDE可以获取它。

票数 1
EN

Stack Overflow用户

发布于 2012-11-28 22:32:40

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特定版本的依赖项,则在组名和工件名称之间使用2%。不要忘记在build.sbt文件中的每个命令之间添加一个空行。

代码语言:javascript
复制
libraryDependencies += "com.gistlabs" % "mechanize" % "0.11.0"

libraryDependencies += "org.scalatest" %% "scalatest" % "1.6.1" % "test"

通过运行Update命令更新依赖项:

代码语言:javascript
复制
$ sbt update

sbt Eclipse插件

https://github.com/typesafehub/sbteclipse/wiki/Installing-sbteclipse

通过在~/. sbt /plugins/plugins.sbt创建一个文件并将这一行放入其中,您可以全局安装sbt eclipse插件:

代码语言:javascript
复制
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")

每当添加或更新依赖项时,运行以下命令并刷新eclipse项目:

代码语言:javascript
复制
$ sbt eclipse
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13614974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档