在使用SBT程序集的子目录中查找Main类时出现问题

时间:2015-11-03 19:45:03

标签: scala sbt sbt-assembly

我正在尝试使用SBT程序集(0.14.0)来创建我的Scala项目的胖罐。

我的项目结构如下:

    >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构建成功但运行时我收到错误:

错误:无法找到或加载主类名称.Boot

2 个答案:

答案 0 :(得分:1)

根据您发布的代码段,您可以尝试更改

mainClass in assembly := some("name.Boot")

mainClass in assembly := Some("name.Boot")

不抱怨的原因是小写some引用了something else

答案 1 :(得分:0)

mainClass的文件路径不相关,只与Scala / Java中的命名空间相关。是你的主要对象

package name

object Boot {
  def main ...
}