在过去的几个小时里,我一直在与此作斗争,我一直没有取得任何进展。似乎无论我做什么,我都会遇到同样的错误。
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"
答案 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._
,不需要它。这应该有用。