gradle:在多项目应用程序中禁用在根目录下创建生成文件夹
我的gradle:在多项目应用程序中禁用在根目录下创建生成文件夹,gradle,build,Gradle,Build,我的gradle项目是一个多项目结构。它由两个子项目组成。根项目中的Mybuild.gradle,如下所示: allprojects { apply plugin: 'eclipse' } subprojects { apply plugin: 'java' apply plugin: 'maven-publish' publishing { repositories { maven { name 'myMaven' def
gradle
项目是一个多项目结构。它由两个子项目组成。根项目中的Mybuild.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
}
}
}
在gradlebuild
之后,我得到了三个build文件夹。一个在根目录中,另两个在各自的子项目中。根项目只是一个没有任何源代码的空文件夹,它只是一个多项目容器
现在我需要消除根构建文件夹的创建,因为它没有任何用处。我在网上和gradle文档/论坛上搜索,但没有得到任何点击
有没有办法让gradle停止在根级别创建生成文件夹?谁负责创建build
dir?
,一个Gradle核心开发人员,每个任务都负责创建输出目录,只要它创建了输出
所以基本上,如果你的根项目有一个build
dir,这意味着它不是空的,并且有东西故意写入其中
在我的工作中,我管理一个由根项目组成的大项目,它处理许多.gradle
文件、设置文件等,以及许多带有实际代码的子项目。当我运行gradle clean build
时,所有子项目都会使用libs、二进制文件等获得自己的build
dir。但是根项目不会以任何build
dir结束,因为没有任何任务会在根build
dir中写入输出
我可以做什么来删除根build
dir,不管创建它的任务是什么?
只需为根项目设置一个buildFinished
hook
gradle.buildFinished {
project.buildDir.deleteDir()
}
你为什么关心那个文件夹?只需将其从版本控制中排除并隐藏在IDE中,就可以了。它已经被排除了。上面的原因是我们不希望在bamboo服务器中创建该文件夹。创建后删除该文件夹可以解决您的问题吗?生成后根build
文件夹中有什么?