【发布时间】:2013-12-15 15:17:52
【问题描述】:
我刚刚切换到 SBT 0.13.1 并且 arg 处理发生了变化,或者存在错误。这是我正在测试的内容(名为 sbt-test.scala):
#!/bin/sh
SBT_0_13_0="/path/to/sbt-launch-0.13.0.jar"
SBT_0_13_1="/path/to/sbt-launch-0.13.1.jar"
SBT="$SBT_0_13_1"
exec java $JAVA_OPTS -Dsbt.main.class=sbt.ScriptMain -jar "$SBT" $0 "$@"
!#
/***
scalaVersion := "2.10.3"
libraryDependencies ++= Seq(
"com.typesafe" % "config" % "1.0.0"
)
*/
import com.typesafe.config.{ConfigFactory, Config}
println(s"Args: ${args mkString ", "}")
val cfg = ConfigFactory.parseString(
"""
|credentials {
| user = someone
| pass = s3cr3t
|}
""".stripMargin)
println(cfg getString "credentials.user")
当我运行./sbt-test.scala --arg=val 时,出现以下错误:
[error] Expected ID character
[error] Not a valid command: arg
[error] arg=val
在 SBT 0.13.0 中使用相同的参数运行相同的脚本会产生预期的结果:
Args: --arg=val
someone
同样,如果我将该可执行脚本转换为实际的 SBT 项目并尝试运行 sbt run --flag 我会得到
[error] Not a valid command: flag (similar: iflast, last, alias)
[error] flag
【问题讨论】:
标签: sbt