gradle multi-project:构建目录出现在包含Kotlin文物的根目录中

时间:2017-11-05 21:14:03

标签: gradle kotlin

我们的多项目构建具有以下结构:

root-project \-project1 \-project2 \-build.gradle \-settings.gradle

当我从root-project目录运行gradle build时,project1(而不是Kotlin项目)中的构建工件仍然按照预期保留在project1 / build目录下。但是,构建目录将显示在仅包含build/kotlinbuild/kotlin-build目录的根目录下。

即使我从gradle build运行root-project/project2,我也会看到相同的行为。

我缺少什么来强制所有的kotlin建筑文物被置于:

root-dir/project2/build

我的root-dir/build.gradle中有以下内容可能会对行为有所了解:


    task root-project(dependsOn: ':project1:build') {
       doLast {
           copy {
               from project(':project1:').file('dist')
               into project(':project2:').file('build/resources/main/static/')
           }
       }
    }

    project(':project1') {
        task UI(dependsOn: ':project1:runAll') {
            doLast {
                println 'UI'
            }
        }
    }

    project(':project2') {
        task API(dependsOn: ':project2:bootRun') {
            doLast {
                println 'API'
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

生成的工件实际上放在子项目目录下,与您期望的完全一样。

根项目中的build/kotlinbuild/kotlin-build目录包含Kotlin Gradle插件在整个构建中存储和使用的一些内部状态(例如多模块增量编译缓存)。它位于根项目目录下,因为它也在子项目中共享。

换句话说,不用担心。