scala - 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 run
,sbt clean
)在 Ubuntu 18.04 cmd 行上构建和运行时没有遇到任何问题。
然后我将我的代码检查到一个 git repo 并推送到一个远程存储库。该项目是一个简单的项目,仅包含大约 5 个 .scala 文件和一些标准 Play Framework 前端视图。除了我的 .scala 文件之外,我还确保 pushbuild.sbt
和目录下的 build.properties 和 plugins.sbt文件。project
我还签入了sbt
和sbt.bat
脚本。
我将这个 git 项目克隆到一个新位置。
我运行代码,一如既往地使用sbt run
. 一些依赖关系被拉下。但不久我得到一个错误:java.lang.RuntimeException: No main class detected.
我试了几次,然后又跑了一次,sbt clean
只是为了很好的衡量。我注意到一个简短的 grep 显示没有明确的main()
候选者,但我在原始的工作代码中也是如此 - 而不是新克隆的 - 本地 git 存储库。我需要做什么才能确保我或其他人可以简单地从 github 签出这个或任何其他 Play 项目,并成功运行它而不会出现此错误?这应该是自动的。提前致谢。
解决方案
哦,呸。尽管进行了检查,但似乎我拉下了一个空的 build.sbt 文件。我确保签入了正确的非空build.sbt
文件,我拉取它,并且项目构建没有问题。非常遗憾。
推荐阅读
- mysql - 是否可以按 15 分钟间隔获取事务和组的总数
- c - 如何在 DPDK 中生成增量数据值
- sql - 无法批量加载,因为文件 ... 无法打开。操作系统错误代码58(指定的服务器无法执行请求的操作)
- mysql - Docker Compose 中的 Mysql 没有使用环境变量
- python-3.x - 从不同进程导入 Tensorflow 2.0 gpu
- jquery-select2 - 在按钮单击时设置 ng-select2 的值
- c++ - 如何在给定时钟偏移的情况下正确获取时间
- javascript - html中的粘性图像占用标题中的空间
- makefile - 如何从标准输入读取到生成文件变量
- java - 如何为另一个构造函数的类中的类创建字段数组引用