gradle - 如何处理 Gradle 复合构建中的相对路径?
问题描述
我有一个具有以下目录结构的 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
的绝对路径,然后是(这是我想要/期望的)的内容。但是,当我从目录执行时,我得到目录的绝对路径,后跟文件的a 。componentbuild
testfile.txt
gradle runComponentBuildSampleTask
compositebuildroot
compositebuildroot
java.io.FileNotFoundException
testfile.txt
我怎样才能gradle runComponentBuildSampleTask
从产生compositebuildroot
任何输出呢?有没有办法告诉 gradle 运行组件构建任务,就好像当前目录是组件构建的 settings.gradle 文件的目录一样?gradle sampleTask
componentbuild
解决方案
推荐阅读
- python - 使用 rk4 绘制三个物体的轨道
- sql - 雪花的系统表查询
- c - 如何终止处于阻塞调用中间的 pthread?
- python - 在 Python 中编写函数时使用 pandas 数据框作为参数
- reactjs - 反应spring useTransition状态更新修改退出组件
- r - 将 R 数据框写入保持 Excel 的默认日期格式的 Excel 文件
- node.js - 即使在我按照其他 SO 答案在 NPM CONFIG 中进行了建议的更改之后,如何在代理后面安装 NPM 依赖项?
- python - 在 Luigi 中创建动态顺序任务
- c# - 为什么这个 TryParseExact 表单字符串到 DateTime 失败?
- javascript - 基于存储在字符串数组js中的键的自定义排序/排序对象数组