gpt4 book ai didi

gradle - 如何处理Gradle复合构建中的相对路径?

转载 作者:行者123 更新时间:2023-12-03 05:06:24 24 4
gpt4 key购买 nike

我有一个具有以下目录结构的Gradle复合构建:

compositebuildroot/
build.gradle
settings.gradle
componentbuild/
build.gradle
settings.gradle
testfile.txt

包含 compositebuildroot/build.gradle
task runComponentBuildSampleTask {
dependsOn gradle.includedBuild('componentbuild').task(':sampleTask')
}

,包含 compositebuildroot/settings.gradle
rootProject.name = 'compositebuildroot'
includeBuild 'componentbuild'

,包含 compositebuildroot/componentbuild/build.gradle
task sampleTask {
doLast {
println "System.getProperty(\"user.dir\"): " + System.getProperty("user.dir")
println new File("testfile.txt").text
}
}

,并且 compositebuildroot/componentbuild/settings.gradle包含
rootProject.name = 'componentbuild'



当我从 gradle sampleTask目录执行 componentbuild时,我得到了 componentbuild目录的绝对路径,并打印了 testfile.txt的内容(这是我想要/期望的)。但是,当我从 gradle runComponentBuildSampleTask目录执行 compositebuildroot时,我得到 compositebuildroot目录的绝对路径,后跟 java.io.FileNotFoundException文件的 testfile.txt

如何使 gradle runComponentBuildSampleTask中的 compositebuildroot产生 gradle sampleTask中的任何输出 componentbuild?有什么办法告诉gradle运行组件构建任务,就像当前目录是组件构建的settings.gradle文件的目录一样?

最佳答案

切勿使用new File(...)
一律使用file(...)
参见Project.file(Object)

关于gradle - 如何处理Gradle复合构建中的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964249/

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