问题场景:
在gradle编译时,我们常常将一个配置文件放置在项目的根目录下
但是某个子moudle的build.gradle需要访问根目录下的配置文件
比如下面下图这个代码结构
我们希望在app这个moudle的build.gradle中访问根目录下的conf/conf.file
尝试编写如下代码
task testPath {
File configFile = file 'conf/conf.file'
System.out.println(configFile.getAbsolutePath())
}
输出 D:\GradlePathDemo\app\conf\conf.file
最终发现输出的并不是想要的路径 而是app下的路径
解决方法
1:使用相对路径方式
task testPath {
File configFile = file '../conf/conf.file'
System.out.println(configFile.getAbsolutePath())
}
如上述代码
../
表示当前目录的上层目录,这样就可以找到根目录下的src/config,如果一层不够,可以再加一个相同的符号再往上一层
比如
../../
2:使用绝对路径方式
task testPath {
File configFile = new File('src/config.cson');
System.out.println(configFile.getAbsolutePath())
}
注意 configFile 的创建方式跟相对路径方式下的区别