gpt4 book ai didi

scala - 如何在我的 Scala 脚本中获得自动依赖解析?

转载 作者:行者123 更新时间:2023-12-03 21:18:18 24 4
gpt4 key购买 nike

我只是在学习来自 groovy/java 世界的 Scala。我的第一个脚本需要一个用于 XML/HTML 解析的 3rd 方库 TagSoup,我不愿意以老式的方式添加它:即,从其开发者网站下载 TagSoup,然后将其添加到类路径中。

有没有办法在我的 Scala 脚本中解析第三方库?我在想 Ivy ,我在想葡萄。

想法?

最适合我的答案是安装 n8:

curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
cs harrah/xsbt --branch v0.11.0

然后我可以很容易地导入 tagsoup example.scala
  /***
libraryDependencies ++= Seq(
"org.ccil.cowan.tagsoup" % "tagsoup" % "1.2.1"
)
*/

def getLocation(address:String) = {
...
}

并使用 Scalas 运行:
  scalas example.scala

谢谢您的帮助!

最佳答案

虽然答案是 SBT,但在考虑脚本的情况下它可能会更有帮助。看,SBT 对脚本有特殊的作用,如 here 所述。 .一旦您获得 scalas安装,或者通过安装 conscript然后运行 ​​cs harrah/xsbt --branch v0.11.0 ,或者干脆自己写或多或少是这样的:

#!/bin/sh
java -Dsbt.main.class=sbt.ScriptMain \
-Dsbt.boot.directory=/home/user/.sbt/boot \
-jar sbt-launch.jar "$@"

然后你可以像这样编写你的脚本:
#!/usr/bin/env scalas
!#

/***
scalaVersion := "2.9.1"

libraryDependencies ++= Seq(
"net.databinder" %% "dispatch-twitter" % "0.8.3",
"net.databinder" %% "dispatch-http" % "0.8.3"
)
*/

import dispatch.{ json, Http, Request }
import dispatch.twitter.Search
import json.{ Js, JsObject }

def process(param: JsObject) = {
val Search.text(txt) = param
val Search.from_user(usr) = param
val Search.created_at(time) = param

"(" + time + ")" + usr + ": " + txt
}

Http.x((Search("#scala") lang "en") ~> (_ map process foreach println))

您可能也对 paulp's 感兴趣 xsbtscript ,这会创建一个 xsbtscriptscalas 具有相同内容的 shell (我猜后者是基于前者),其优点是,无需安装 conscript 或 sbt,您就可以通过以下方式做好准备:
curl https://raw.github.com/paulp/xsbtscript/master/setup.sh | sh

请注意,它安装了 sbt 和 conscript。

还有paulp的 sbt-extras ,这是另一种“sbt”命令行,具有更多选项。注意它仍然是sbt,只是启动它的shell脚本更智能。

关于scala - 如何在我的 Scala 脚本中获得自动依赖解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7600189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com