See*_*vil 31 windows android gradle
是否有更简洁的方法来引用用户主目录中的文件,而不是在gradle脚本中执行以下操作?(在此示例中引用Android密钥库)
homeDir = System.getenv('HOMEDRIVE') + System.getenv('HOMEPATH');
...
signingConfigs {
release {
storeFile file(homeDir + "\\.android\\releaseKeystore.jks")
}
}
...
Run Code Online (Sandbox Code Playgroud)
Sho*_*orn 27
未经测试的代码,但是这样的事情怎么样(可能需要围绕"X as File"位括号):
signingConfigs {
release {
storeFile "${System.properties['user.home']}${File.separator}.android${File.separator}releaseKeystore.jks" as File
}
}
Run Code Online (Sandbox Code Playgroud)
roo*_*msg 26
更通用(阅读:"groovy"而不是使用"ant")
def homePath = System.properties['user.home']
Run Code Online (Sandbox Code Playgroud)
Gradle 知道引用用户主目录中的gradleUserHomeDir
目录的属性(例如在 Unix 上:~/.gradle):.gradle
println project.gradle.gradleUserHomeDir
Run Code Online (Sandbox Code Playgroud)
由于它是一个文件对象,您可以简单地使用.parent
它来获取用户的主目录:
signingConfigs {
release {
storeFile file(project.gradle.gradleUserHomeDir.parent + "/.android/releaseKeystore.jks")
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用ant来访问user.home
属性。然后,您可以使用 Java File API,这比路径字符串连接更清晰。
task hello << {
def homePath = ant.properties['user.home']
println homePath
println new File(homePath, "relative/file/path.txt")
}
Run Code Online (Sandbox Code Playgroud)