关于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)