如何在build.sbt和assembly.sbt之间共享val

时间:2015-01-12 23:13:13

标签: scala sbt sbt-assembly

我正在为我的构建使用两个文件:build.sbt和assembly.sbt(用于使用sbt-assembly插件构建胖jar)。我在build.sbt中定义了一些val。我们只是说我正在做一些依赖于它们的自定义任务。但是,我注意到build.sbt中定义的val在assembly.sbt中不可见。所以我最终复制了这两个文件中的代码。如何配置它使assembly.sbt可以在build.sbt中看到val?

谢谢!

1 个答案:

答案 0 :(得分:2)

目前,*.sbt文件中的val应该是命名空间分隔的。我们已经讨论了是否拥有全局命名空间的优点,但最终将它们分开使事情变得更加一致。

" sbt"在 build.sbt之间共享val和设置的方法是:

  • 创建一个插件,这样做。
  • 创建一个"库"在project/目录中这样做。

对于选项#2,您可以执行以下操作:

<强>项目/ lib.scala

package mylib

object MyStuff {
   val foo = "hi"
}

<强> build.sbt

import mylib.MyStuff

// Just reference .scala code from the project/ directory.
name := MyStuff.foo

希望有所帮助!