关于Scala项目的`foreman start`,找不到主类 - java.lang.NoClassDefFoundError
我正在尝试测试我的应用程序,然后在Heroku上部署它 . 我已经将sbt启动脚本添加到我的plugins.sbt:
addSbtPlugin("com.typesafe.sbt" % "sbt-start-script" % "0.8.0")
我有一个 Procfile
包含:
web:target / start Web -Dhttp.port = $ PORT
当我运行sbt stage
任务时,它会在 target/start
中生成启动脚本,该脚本以com.somepackage.mainclass的形式指向我项目的"main"类 .
当我运行 foreman start
时,它立即失败:
08:34:51 web.1 |线程“main”中的异常java.lang.NoClassDefFoundError:foo / launch / MainApp 08:34:51 web.1 |引起:java.lang.ClassNotFoundException:foo.launch.MainApp 08:34:51 web.1 |在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)08:34:51 web.1 |在java.security.AccessController.doPrivileged(Native Method)08:34:51 web.1 |在java.net.URLClassLoader.findClass(URLClassLoader.java:190)08:34:51 web.1 |在java.lang.ClassLoader.loadClass(ClassLoader.java:306)08:34:51 web.1 |在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)08:34:51 web.1 |在java.lang.ClassLoader.loadClass(ClassLoader.java:247)08:34:51 web.1 |退出代码1 08:34:51系统|将SIGTERM发送到所有进程
我已经尝试了几次sbt clean编译阶段,但它似乎没有帮助 . 也没有将主类移动到不同的包甚至是默认包,即src / main / scala .
回答(0)