禁用 project/task 组合的聚合

Disable aggregation for a project/task combination

我正在寻找一种方法来禁用 android 项目的测试执行。最简单的方法似乎是聚合所有项目,然后禁用特定 project/task 组合的聚合。不幸的是,这不适用于我如下所示的配置尝试。

object Build extends sbt.Build {
    lazy val root = project.in( file( "." ) )
        .settings(
            // This setting does not have an effect,
            // all projects have their tests executed
            aggregate in ( android, test ) := false,
            publishArtifact := false
        )
        .aggregate( core, android, androidTest )

    lazy val core = project.in( file( "core" ) )
        ...

    lazy val android = project.in( file( "android" ) )
        ...
        .dependsOn( core )

    lazy val androidTest = flavorOf( android, "android-test" )
        ...
}

理想情况下,我宁愿根本不聚合 androidTest,而是将 android/test 转发到 androidTest/test,但由于循环引用,这似乎是不可能的。 flavorOf 函数是 android-sdk-plugin for sbt 的一部分。

也许,正如上面构建的最后一行:

test in android <<= test in androidTest