我们的多项目构建具有以下结构:
root-project
\-project1
\-project2
\-build.gradle
\-settings.gradle
当我从root-project目录运行gradle build
时,project1(而不是Kotlin项目)中的构建工件仍然按照预期保留在project1 / build目录下。但是,构建目录将显示在仅包含build/kotlin
和build/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' } } }
答案 0 :(得分:1)
生成的工件实际上放在子项目目录下,与您期望的完全一样。
根项目中的build/kotlin
和build/kotlin-build
目录包含Kotlin Gradle插件在整个构建中存储和使用的一些内部状态(例如多模块增量编译缓存)。它位于根项目目录下,因为它也在子项目中共享。
换句话说,不用担心。