首页 > 解决方案 > Scala Play (2.8) 项目:从 git 克隆后,sbt run 产生:java.lang.RuntimeException:未检测到主类

问题描述

这个问题问起来有点尴尬,但几次搜索都没有得到明确的答案。我创建了一个 Scala Play 项目(Play 2.8.1; sbt 1.3.4; Scala 2.13.1),使用命令sbt new playframework/play-scala-seed.g8 All 可以按预期工作。我添加了一些 Scala 代码的类和对象,并且在使用 sbt 命令(例如sbt runsbt clean)在 Ubuntu 18.04 cmd 行上构建和运行时没有遇到任何问题。

然后我将我的代码检查到一个 git repo 并推送到一个远程存储库。该项目是一个简单的项目,仅包含大约 5 个 .scala 文件和一些标准 Play Framework 前端视图。除了我的 .scala 文件之外,我还确保 pushbuild.sbt和目录下的 build.properties 和 plugins.sbt文件。project我还签入了sbtsbt.bat脚本。

我将这个 git 项目克隆到一个新位置。

我运行代码,一如既往地使用sbt run. 一些依赖关系被拉下。但不久我得到一个错误:java.lang.RuntimeException: No main class detected.

我试了几次,然后又跑了一次,sbt clean只是为了很好的衡量。我注意到一个简短的 grep 显示没有明确的main()候选者,但我在原始的工作代码中也是如此 - 而不是新克隆的 - 本地 git 存储库。我需要做什么才能确保我或其他人可以简单地从 github 签出这个或任何其他 Play 项目,并成功运行它而不会出现此错误?这应该是自动的。提前致谢。

标签: scalaplayframeworksbt

解决方案


哦,呸。尽管进行了检查,但似乎我拉下了一个空的 build.sbt 文件。我确保签入了正确的非空build.sbt文件,我拉取它,并且项目构建没有问题。非常遗憾。


推荐阅读