【问题标题】:SBT aggregating subprojectSBT聚合子项目
【发布时间】:2018-03-13 13:45:06
【问题描述】:

给定一个项目结构:

rootProject
  aggregatingSubProject
    subA
    subB
  subC

如何在不手动指定的情况下为aggregatingSubProject 及其所有聚合项目运行package 任务?

到目前为止,我只能在 rootProject 中执行 package 时构建 subAsubB - 无论我是否将 .aggregate(subA, subB) 放在 aggregatingProjectbuild.sbt 中。

我需要rootProject 来定义构建的通用设置,并且我想在单个构建中构建多个项目(一些聚合其他项目,如aggregatingSubProject 所做的)。

编辑:我需要在不指定根 build.sbt 中的所有子子项目的情况下执行此操作。我想在 aggregatingSubProject/build.sbt 中定义 subA 和 subB。

使用 sbt 0.13.16

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    鉴于此build.sbt:

    val rootProject = project in file(".")
    val aggregatingSubProject = project
    val subC = project
    

    这个在aggregatingSubProject/build.sbt:

    aggregateProjects(subA, subB)
    
    val subA = project
    val subB = project
    

    您可以运行aggregatingSubProject/package 并获取:

    > aggregatingSubProject/package
    [info] Updating {file:/s/t-subaggregate/}subB...
    [info] Updating {file:/s/t-subaggregate/}aggregatingSubProject...
    [info] Updating {file:/s/t-subaggregate/}subA...
    [info] Done updating.
    [info] Packaging /s/t-subaggregate/aggregatingSubProject/subA/target/scala-2.12/suba_2.12-0.1-SNAPSHOT.jar ...
    [info] Done updating.
    [info] Done packaging.
    [info] Packaging /s/t-subaggregate/aggregatingSubProject/subB/target/scala-2.12/subb_2.12-0.1-SNAPSHOT.jar ...
    [info] Done packaging.
    [info] Done updating.
    [info] Packaging /s/t-subaggregate/aggregatingSubProject/target/scala-2.12/aggregatingsubproject_2.12-0.1-SNAPSHOT.jar ...
    [info] Done packaging.
    

    【讨论】:

    • 感谢您的回复!我可以在不指定根build.sbt 中的所有子子项目的情况下以某种方式做到这一点吗?我想在aggregatingSubProject/build.sbt 中定义subAsubB(这就是我现在正在做的事情,但它似乎没有按预期工作)
    猜你喜欢
    • 2015-09-05
    • 2015-12-02
    • 2014-06-24
    • 2015-05-28
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 2016-06-03
    相关资源
    最近更新 更多