gradle multi-project: каталог сборки появляется в корневом каталоге, содержащем артефакты Котлина

Наша многопроектная сборка имеет следующую структуру:

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

Когда я запускаю gradle build из каталога root-project, артефакты сборки в проекте1 (а не проект Kotlin) остаются в каталоге project1 / build, как и ожидалось. Однако каталог директорий появляется в корневой директории, содержащей только директории build/kotlin и build/kotlin-build .

Даже если я запустил gradle build из root-project/project2 я вижу такое же поведение.

Что мне не хватает для заказа, чтобы все артефакты сборки kotlin были помещены под:

root-dir/project2/build

В моем root-dir/build.gradle есть следующее: root-dir/build.gradle можете пролить свет на поведение:


     task root-project (dependsOn: ': project1: build') {
        doLast {
            копировать {
                из проекта (': project1:'). file ('dist')
                в проект (': project2:'). file ('build / resources / main / static /')
            }
        }
     }

     project (': project1') {
         пользовательский интерфейс задачи (зависит от: ': project1: runAll') {
             doLast {
                 println 'UI'
             }
         }
     }

     project (': project2') {
         API задачи (dependsOn: ': project2: bootRun') {
             doLast {
                 println 'API'
             }
         }
     }

Результирующие артефакты фактически размещаются под каталогами подпроектов, как и ожидалось.

build/kotlin и build/kotlin-build в корневом проекте содержат некоторое внутреннее состояние, которое плагин Kotlin Gradle хранит и использует в разных сборках (например, многомодульный инкрементный кэш компиляции). Он помещается под корневым каталогом проекта, так как он также разделяется между подпроектами.

Другими словами, это не о чем беспокоиться.