【问题标题】:how to share vals between build.sbt and assembly.sbt如何在 build.sbt 和 assembly.sbt 之间共享 val
【发布时间】:2015-01-16 00:29:25
【问题描述】:

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

谢谢!

【问题讨论】:

  • 目前.sbt 语法不支持此功能。您可以将共享 vals 放在 project/lib.scala 文件中
  • 嗨,杰瑞斯!这是如何运作的?创建 lib.scala 后,是否将其导入 build.sbt 和 assembly.sby?
  • 我会创建一个真实的答案。

标签: scala sbt sbt-assembly


【解决方案1】:

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

build.sbt 之间共享 val 和设置的“sbt”方式是:

  • 创建一个这样做的插件。
  • project/ 目录中创建一个“库”。

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

project/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

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2011-06-10
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多