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

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

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

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

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

我错过了什么命令迫使所有的kotlin构建文物被置于:

root-dir/project2/build

我在我的root-dir/build.gradle有以下内容,这可能会揭示一些行为:


    任务根项目(dependsOn:':project1:build'){
        doLast {
           复制{
               从项目(':project1:')。文件('dist')
                (':project2:')。file('build / resources / main / static /')
            }
        }
     }

    项目(':project1'){
        任务UI(dependsOn:':project1:runAll'){
             doLast {
                 println'UI'
             }
         }
     }

    项目(':project2'){
        任务API(dependsOn:':project2:bootRun'){
             doLast {
                 println'API'
             }
         }
     }

生成的构件实际上被放置在子项目目录下,就像您期望的那样。

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

换句话说,这不是什么可担心的事情。