我的gradle
项目是一个multi-project
结构.它由两个子项目组成.我build.gradle
的root项目如下:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
之后gradle build
,我有三个构建文件夹.一个位于根目录,另外两个位于各个子项目中.根项目只是一个没有任何源代码的空文件夹,它只是一个多项目容器.
现在我需要消除根构建文件夹的创建,因为它没用.我在网上和gradle文档/论坛中搜索,但没有得到任何打击.
是否有任何方法可以让gradle停止在根级别创建构建文件夹?
build
创建目录?根据Gradle 核心开发人员 Mark Vieira 的说法,只要创建输出,每个任务都负责创建输出目录。
所以基本上,你的根项目确实有一个build
目录,这意味着它不是空的,并且有一些东西是故意写入的。
在我的工作中,我正在管理一个由根项目构成的大项目,该项目处理许多.gradle
文件、设置文件等以及许多带有实际代码的子项目。当我运行时gradle clean build
,所有子项目都build
使用库、二进制文件等获得自己的目录,但根项目最终build
没有任何目录,因为没有任何任务在根build
目录中写入输出。
build
目录,无论创建它的任务是什么?只为根项目设置一个buildFinished
钩子
gradle.buildFinished {
project.buildDir.deleteDir()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
717 次 |
最近记录: |