Scala, Play2.0 - Ожидается ';' но нашел ')' - PullRequest
3 голосов
/ 21 декабря 2011

Это обычная тема для начинающих программистов 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

Если удалить одну строку, это работает, не имеет значения, какой.Изменение порядка строк не имеет значения.

Кто-нибудь может направить меня правильно?

Ответы [ 4 ]

6 голосов
/ 22 декабря 2011

Проблема в том, что 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"
  )
)
1 голос
/ 21 декабря 2011

Цепочка двух обращений к настройкам устранила проблему.

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"
)
0 голосов
/ 30 ноября 2012

Вы просто пропустили запятую между первым и вторым распознавателями

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"
)
0 голосов
/ 30 ноября 2012

Не забудьте пропустить строки между определителями.

...