【问题标题】:Scala, Play2.0 - Expected ';' but found ')'斯卡拉,Play2.0 - 预期的';'但发现')'
【发布时间】:2012-11-30 22:47:35
【问题描述】:

这似乎是像我这样的新手 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"
)

这两行一起产生错误:

[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

如果我删除一行,它会起作用,不管是哪一行。更改行的顺序没有区别。

任何人都可以指导我吗?

【问题讨论】:

  • 这些解析器参数不是设置函数吗? (免责声明:没有游戏知识)
  • 这就是我需要的提示。我将解析器放在单独的链接设置调用中并修复了它。谢谢!

标签: scala playframework-2.0


【解决方案1】:

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

val main = PlayProject(...).settings(a b)

你应该写的是这样的:

val main = PlayProject(...).settings(a, b) // put in a comma!

虽然你也可以这样写:

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"
  )
)

【讨论】:

  • 这是很久以前的事了,我还没有尝试过,但它是有道理的,并且是票数最高的答案,所以我将功劳归功于 Daniel...
【解决方案2】:

链接两次设置调用解决了这个问题。

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"
).settings(
    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"
)

【讨论】:

    【解决方案3】:

    不要忘记在解析器之间跳过行。

    【讨论】:

    • 您的意思是添加一个额外的换行符会有所不同?
    【解决方案4】:

    您只是错过了第一个和第二个解析器之间的逗号

    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"
    )
    

    【讨论】:

    • 这是很久以前的了,不过我在大牛的回答后试了一下,还是不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2011-09-16
    • 2016-01-31
    • 1970-01-01
    相关资源
    最近更新 更多