我已经成功使用sbt eclipse 3.0.0一段时间了。我最近升级到了Play 2.3.8,需要升级到sbt eclipse 4.0.0来避免这个问题。我尝试更新project/plugins.sbt,但在运行activator eclipse
:时出现此错误
java.lang.NoSuchMethodError: com.typesafe.sbteclipse.core.EclipsePlugin$.EclipseKeys()Lcom/typesafe/sbteclipse/core/EclipsePlugin$EclipseKeys$;
at play.PlayEclipse$class.eclipseCommandSettings(PlayEclipse.scala:93)
at play.Play$.eclipseCommandSettings(Project.scala:17)
at play.PlayScala$.projectSettings(Project.scala:72)
at sbt.Load$$anonfun$autoPluginSettings$1$1.apply(Load.scala:666)
at sbt.Load$$anonfun$autoPluginSettings$1$1.apply(Load.scala:666)
.....
我试着只在~/.sbt/0.13/plugins/plugins.sbt中引用4.0.0,然后只在我的项目/plugin.sbt中引用,但这似乎没有什么区别。事实上,当两个引用都被删除时,我能够运行3.0.0 activator eclipse。我不知道activator/sbt在这种情况下是如何找到3.0.0插件的——也许我的错误是由于加载了3.0.0和4.0.0?
环境:
Play 2.3.8
Activator 1.3.4
Scala 2.10.4
~/.sbt/0.13/plugins/plugins.sbt为空
project/build.properties:
sbt.version=0.13.8
project/plugins.sbt:
// Comment to get more information during initialization
logLevel := Level.Info
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.6")
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
我的解决方案是在全局或项目中删除对eclipse的支持,因为play已经为生成eclipse文件提供了内部支持。事实上,sbt-eclipse的4.0.0版本就是问题所在。
从升级您的游戏插件版本
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.8")
至:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
这将与eclipse插件4.0.0 一起使用
我删除了
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
来自
~/.sbt/0.13/plugins/plugins.sbt
和
project_root/project/plugins.sbt
这对我有帮助。