gpt4 book ai didi

gradle:禁止在多项目应用程序的根目录创建构建文件夹

转载 作者:行者123 更新时间:2023-12-03 02:41:00 26 4
gpt4 key购买 nike

我的 gradle项目是 multi-project结构体。它由两个子项目组成。我的 build.gradle在根项目中如下:

allprojects {
apply plugin: 'eclipse'
}

subprojects {
apply plugin: 'java'
apply plugin: 'maven-publish'

publishing {
repositories {
maven {
name 'myMaven'
def suffix = project.version.endsWith("SNAPSHOT") ? "snapshots" : "releases"
url baseUrl + suffix
}
}

publications {
core(MavenPublication) {
artifactId project.name
artifact jar
}
}
}
}

project(':projectA') {
ext {
sharedManifest = manifest {
attributes("Implementation-Title": project.name,
"Implementation-Version": 1.0 )
}
}
jar {
manifest = project.manifest {
from sharedManifest
}
}
}

project('projectB') {
ext {
sharedManifest = manifest {
attributes("Implementation-Title": project.name,
"Implementation-Version": 2.0 )
}
}
jar {
manifest = project.manifest {
from sharedManifest
}
}
}

之后 gradle build ,我有三个构建文件夹。一个在根目录,另外两个在各自的子项目中。根项目只是一个没有任何源代码的空文件夹,它只是一个多项目容器。

现在我需要消除根构建文件夹的创建,因为它没有用。我在网上和 gradle docs/forum 上搜索,但没有受到任何打击。

有什么办法可以让 gradle 停止在根级别创建构建文件夹?

最佳答案

谁负责build目录创建?

According to Mark Vieira ,一个 Gradle 核心开发者,每个任务只要创建输出就负责创建输出目录。

所以基本上,你的根项目确实有一个 build dir,这意味着它不是空的,并且是故意写入的东西。

在我的工作中,我正在管理一个由根项目构成的大项目,它处理许多 .gradle文件、设置文件等以及许多带有实际代码的子项目。当我运行 gradle clean build ,所有子项目都有自己的build带有库、二进制文件等的目录,但根项目没有以任何 build 结尾dir 因为没有任何任务将输出写入根目录 build目录

我该怎么做才能删除根 build dir,创建它的任何任务?

只需设置一个buildFinished Hook 仅适用于根项目

gradle.buildFinished {
project.buildDir.deleteDir()
}

关于gradle:禁止在多项目应用程序的根目录创建构建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51518039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com