在带有 SBT 程序集的子目录中查找主类的问题
Posted
技术标签:
【中文标题】在带有 SBT 程序集的子目录中查找主类的问题【英文标题】:Problems finding Main class in sub-directories w/SBT assembly 【发布时间】:2016-02-04 02:42:55 【问题描述】:我正在尝试使用 SBT 程序集 (0.14.0) 创建我的 Scala 项目的胖 jar。
我的项目结构如下:
>top
> build.sbt
> api
> src
> main
> scala
> name
> Boot.scala
> other directories
我正在尝试将 Boot 设置为要在 jar 中运行的主要方法。
我尝试过使用:
baseDirectory in (Compile,run) := file("api")
scalaSource in run := baseDirectory.value / "api"
scalaSource in Compile := baseDirectory(_ / "api")
mainClass in assembly := some("name.Boot")
jar 构建成功,但运行时收到错误:
错误:无法找到或加载主类名。启动
【问题讨论】:
【参考方案1】:按照您发布的 sn-p,您可以尝试更改
mainClass in assembly := some("name.Boot")
到
mainClass in assembly := Some("name.Boot")
它不抱怨的原因是小写的some
指的是something else。
【讨论】:
【参考方案2】:mainClass
的文件路径无关紧要,只有 Scala/Java 中的命名空间。是你的主要对象
package name
object Boot
def main ...
?
【讨论】:
以上是关于在带有 SBT 程序集的子目录中查找主类的问题的主要内容,如果未能解决你的问题,请参考以下文章