Wie übergeben Sie Befehl Linie Argumente, um das Programm im SBT 0.13.1?

Ich wechselte zu SBT 0.13.1 und entweder arg handling geändert oder es ist ein bug. Hier ist, was ich bin, die Tests mit (namens 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")

Wenn ich ./sbt-test.scala --arg=val bekomme ich die folgende Fehlermeldung:

[error] Expected ID character
[error] Not a valid command: arg
[error] arg=val

Läuft das gleiche Skript mit dem gleichen argument, mit SBT-0.13.0 Erträge erwartet:

Args: --arg=val
someone

Ähnlich, wenn ich wiederum, dass das ausführbare Skript in eine tatsächliche SBT-Projekt, und führen Sie sbt run --flag bekomme ich

[error] Not a valid command: flag (similar: iflast, last, alias)
[error] flag
InformationsquelleAutor Andrey | 2013-12-15
Schreibe einen Kommentar