我有以下简单的项目设置
lazy val root = project.in(file(".")).aggregate(kalosrpc, kalosmodel)
lazy val kalosrpc = project.in(file("kalosrpc")).dependsOn(kalosmodel)
lazy val kalosmodel = project
.settings(
libraryDependencies ++= Seq(
dependencies.slf4j,
dependencies.slick,
dependencies.mysql
)
)
lazy val kalosgen = project
.settings(
libraryDependencies ++= Seq(
dependencies.slf4j,
dependencies.slick,
dependencies.slickCodeGen
)
)
Run Code Online (Sandbox Code Playgroud)
具有以下目录结构
|__ api
|__ kalosgen
|__ src
|__ scala
|__ Main.scala
|__ kalosmodel
|__ src
|__ scala
|__ Main.scala
|__ kalosrpc
|__ src
|__ scala
|__ Main.scala
Run Code Online (Sandbox Code Playgroud)
我试图只运行 中的代码kalosgen,但是当我打开 sbt 控制台并执行
project kalosgen
run
Run Code Online (Sandbox Code Playgroud)
我懂了
[error] java.lang.RuntimeException: No main class detected.
[error] at scala.sys.package$.error(package.scala:26)
[error] (Compile / bgRun) No main class detected.
Run Code Online (Sandbox Code Playgroud)
以下是内容 kalosgen/src/scala/Main.scala
import slick.codegen.SourceCodeGenerator
object Main extends App {
val url = "hidden"
val user = "hidden"
val password = "hidden"
val dbDriver = "com.mysql.jdbc.Driver"
val profile = "slick.jdbc.MySQLProfile"
SourceCodeGenerator.main(
Array(
profile,
dbDriver,
url,
".",
"kalosmodel",
user,
password
)
)
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这个设置是正确的,但它不会运行,谷歌搜索错误消息也没有帮助。我试过使用class而不是object指定主类,build.sbt但没有任何效果。
main路径中可能缺少子目录。尝试将结构更改为
kalosgen/src/main/scala/Main.scala
Run Code Online (Sandbox Code Playgroud)
代替
kalosgen/src/scala/Main.scala
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |