Scala,Play2.0 - 期待';' 但发现')'

Mat*_*ith 3 scala playframework-2.0

对于像我这样的新手Scala程序员来说,这似乎是一个共同的主题......

val main = PlayProject(appName, appVersion, appDependencies).settings(defaultJavaSettings:_*).settings(
    resolvers += Resolver.file("private") artifacts "C:/java/repository/[organisation]/[module]/[revision]/[artifact].[ext]" ivys "C:/java/repository/[organisation]/[module]/ivy-[revision].xml"
    resolvers += Resolver.url("public") artifacts "https://foo.com/ivy-repository/[organisation]/[module]/[revision]/[artifact].[ext]" ivys "https://foo.com/ivy-repository/[organisation]/[module]/ivy-[revision].xml"
)
Run Code Online (Sandbox Code Playgroud)

这两行一起产生错误:

[error] C:\java\play-2.0-beta\base\project\Build.scala:16: ')' expected but '.' found.
[error]         resolvers += Resolver.url("webster") artifacts "https://dev.blackrock.com/ivy-repository/[organisation]/[module]/[revision]/[artifact].[ext]" ivys "https://dev.blackrock.com/ivy-repository/[organisation]/[module]/ivy-[revision].xml"
[error]                              ^
[error] C:\java\play-2.0-beta\base\project\Build.scala:17: ';' expected but ')' found.
[error]     )
[error]     ^
[error] two errors found
Run Code Online (Sandbox Code Playgroud)

如果我删除一行,它可以工作,无论哪一行.改变线的顺序没有区别.

任何人都可以引导我吗?

Dan*_*ral 6

这里的问题是这results += ....是一个参数.你写的基本上是这样的:

val main = PlayProject(...).settings(a b)
Run Code Online (Sandbox Code Playgroud)

你应该写的是:

val main = PlayProject(...).settings(a, b) // put in a comma!
Run Code Online (Sandbox Code Playgroud)

虽然你也可以这样写:

val main = PlayProject(appName, appVersion, appDependencies).settings(defaultJavaSettings:_*).settings(
  resolvers ++= Seq(
    Resolver.file("private") artifacts "C:/java/repository/[organisation]/[module]/[revision]/[artifact].[ext]" ivys "C:/java/repository/[organisation]/[module]/ivy-[revision].xml",
    Resolver.url("public") artifacts "https://foo.com/ivy-repository/[organisation]/[module]/[revision]/[artifact].[ext]" ivys "https://foo.com/ivy-repository/[organisation]/[module]/ivy-[revision].xml"
  )
)
Run Code Online (Sandbox Code Playgroud)