无法编译2.2到2.3迁移

时间:2014-09-29 04:28:34

标签: scala playframework-2.0

在过去的几个小时里,我一直在与此作斗争,我一直没有取得任何进展。似乎无论我做什么,我都会遇到同样的错误。

java.lang.NoClassDefFoundError: play/Project$

我的build.sbt

name := "appname"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  filters,
  "org.postgresql" % "postgresql" % "9.3-1100-jdbc4",
  "org.mindrot" % "jbcrypt" % "0.3m",
  "org.webjars" %% "webjars-play" % "2.3.0-2",
  "org.webjars" % "foundation" % "5.3.0",
  "org.scalaj" %% "scalaj-http" % "0.3.16"
)

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.10.4"

我也试过这个build.sbt

object ApplicationBuild extends Build {

 val appName = "appname"
 val appVersion = "1.0-SNAPSHOT"

 val appDependencies ++= Seq(
    jdbc,
    anorm,
    cache,
    filters,
    "org.postgresql" % "postgresql" % "9.3-1100-jdbc4",
    "org.mindrot" % "jbcrypt" % "0.3m",
    "org.webjars" %% "webjars-play" % "2.3.0-2",
    "org.webjars" % "foundation" % "5.3.0",
    "org.scalaj" %% "scalaj-http" % "0.3.16"
  )

 val main = Project(appName, file(".")).enablePlugins(play.PlayScala).settings(
    scalaVersion := "2.10.4",
    version := appVersion,
    libraryDependencies ++= appDependencies
  )
}

以及不同的调整和修改。总是一样的错误。 build.properties设置为sbt.version=0.13.5

plugins.sbt

logLevel := Level.Debug

// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.4")

运行Patrick Mahoney的建议并确保我删除了导入。

错误:

[error] java.lang.NoClassDefFoundError: play/Project$
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
me@me-desktop:~/Projects/appname$ sbt --version
   sbt launcher version 0.13.6
me@me-desktop:~/Projects/appname$ find . | grep -r "play.Project"
me@me-desktop:~/Projects/appname$ find . | grep -r "play/Project"

3 个答案:

答案 0 :(得分:3)

尝试清理构建项目编译输出:

rm -rf project/target 

$> sbt "reload plugins" clean

(除了应用詹姆斯的回答)

答案 1 :(得分:3)

感谢詹姆斯和帕特里克,但我发现了问题。问题出在activator-sbt-echo-play-shim.sbt目录中的/project文件中。

它包含以下内容:

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "0.1.1.3")

我使用Activator创建了第二个空白2.3.4应用程序,并列出了activator-sbt-echo-play-shim.sbt

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5")

所以我将我项目中的那个更新为1.5并删除了想法和eclipse .sbts以获得良好的衡量标准,应用程序最终能够编译。它自动将上述内容更新为:

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.2")

现在我有其他更多预期的问题需要解决(比如anorm)。但我现在能够编译它并获得这些错误以开始解决它们。我不认为这些文件是激活器/ sbt编译的一部分,但我想它们是。我以为他们是为了调试。但他们做出了改变,上述变化也起了作用。

再次感谢大家的帮助。

答案 2 :(得分:1)

确保您已将project/build.properties更新为sbt版本0.13.5。然后,删除import play.Project._,不需要它。这应该有用。