相关疑难解决方法(0)

如何在SBT 0.13.1中将命令行参数传递给程序?

我刚刚切换到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")
Run Code Online (Sandbox Code Playgroud)

当我运行时,./sbt-test.scala --arg=val我收到以下错误:

[error] Expected ID character
[error] Not a valid command: arg
[error] arg=val
Run Code Online (Sandbox Code Playgroud)

使用SBT 0.13.0的相同参数运行相同的脚本会产生预期的:

Args: --arg=val
someone …
Run Code Online (Sandbox Code Playgroud)

sbt

9
推荐指数
1
解决办法
1万
查看次数

如何在交互模式下运行 sbt multiple 命令

我想在 sbt 交互模式下运行几个 sbt 命令,即不离开 sbt “shell”?

(注意: 有些问题回答了如何在标准 shell 中使用 sbt 将参数传递给 sbt-commands。不是我在这里想要的)

示例:我在 sbt 交互式 shell 中,我想运行“test:compile”,然后运行“test”

我知道 test 会调用 required 编译,但在这个例子中,我想在任何测试开始之前运行所有子项目的编译。

sbt

5
推荐指数
1
解决办法
888
查看次数

标签 统计

sbt ×2