gpt4 book ai didi

Gradle:从自定义构建文件开始时获取根项目目录路径

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

我的 Gradle 项目的结构如下:

Project
├── app
└── build.gradle
├── foo
└── bar.txt
·
·
·
└── build.gradle

通常获取 foo的绝对路径文件夹我可以简单地做 new File('foo').getAbsolutePath()在根 build.gradle文件。

但不幸的是,如果您从项目目录外部运行 gradle 脚本,这将不起作用,例如执行以下操作:
$ trunk/gradlew -b trunk/build.gradle tasks

使用前面的命令 gradle 正在寻找 foo项目的父目录中的目录,因为我从那里启动了脚本。

有没有办法获取 build.gradle 所在项目的绝对路径,即使您从另一个目录启动脚本?或者有没有其他方法可以在脚本所在的同一文件夹中获取目录的引用?

我也试过 getClass().protectionDomain.codeSource.location.path但它返回了 gradle 缓存目录的路径。

最佳答案

new File('foo')根据定义(查看其 JavaDoc),会创建一个相对于当前工作目录的路径,因此取决于您从何处调用应用程序。如果您想要相对于项目文件夹的路径,请使用 project.file('foo') ,或作为 project是解析方法的默认值 file('foo')并且您会根据项目目录而不是工作目录解析相对路径。所以使用 file('foo').absolutePath你会没事的。

关于Gradle:从自定义构建文件开始时获取根项目目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635131/

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