我正在尝试在我的项目中使用scopt3,但即使对于scopt3 Github页面上的示例代码,我也会遇到编译错误:
.csproj
错误是:
1)未找到类型配置
我认为它是com.typesafe.config.Config,但是当我导入时,我得到“velue copy不是com.typesafe.config.Config的成员”。 Config来自哪里?
2)没有找到值foo
.copy()方法的所有参数都标记为“未找到值”(我想这是由于Config上的先前错误)
我在scala 2.11.6 / SBT 0.13.8
任何帮助?
答案 0 :(得分:0)
scopt与typesafe-config完全无关。
如果您仔细阅读README
,您会发现在您粘贴的代码之前定义了Config
:
case class Config(foo: Int = -1, out: File = new File("."), xyz: Boolean = false,
libName: String = "", maxCount: Int = -1, verbose: Boolean = false, debug: Boolean = false,
mode: String = "", files: Seq[File] = Seq(), keepalive: Boolean = false,
jars: Seq[File] = Seq(), kwargs: Map[String,String] = Map())
它只是一个对象的示例,它包含程序的所有参数。
您的想法是使用您希望的任何配置对象对OptionParser
进行参数化。 E.g。
case class Foo(name: String)
val parser = new scopt.OptionParser[Foo]("foo") {
opt[String]('n', "name") action { (n, foo) => foo.copy(name = n) }
}
val res = parser.parse(args, Foo("default"))