是否有更简洁的方法来引用用户主目录中的文件而不是在gradle脚本中执行以下操作? (在此示例中引用Android密钥库)
homeDir = System.getenv('HOMEDRIVE') + System.getenv('HOMEPATH');
...
signingConfigs {
release {
storeFile file(homeDir + "\\.android\\releaseKeystore.jks")
}
}
...
答案 0 :(得分:26)
未经测试的代码,但是这样的事情怎么样(可能需要围绕“X as File”位括号):
signingConfigs {
release {
storeFile "${System.properties['user.home']}${File.separator}.android${File.separator}releaseKeystore.jks" as File
}
}
答案 1 :(得分:23)
更通用(读:" groovy"& not using" ant")
def homePath = System.properties['user.home']
答案 2 :(得分:2)
您可以使用 ant 访问user.home
属性。然后,您可以使用比路径字符串连接更清晰的Java File API。
task hello << {
def homePath = ant.properties['user.home']
println homePath
println new File(homePath, "relative/file/path.txt")
}
答案 3 :(得分:1)
Gradle知道属性gradleUserHomeDir
,该属性引用用户主目录中的目录.gradle(例如,在Unixes上为〜/ .gradle):
println project.gradle.gradleUserHomeDir
由于它是文件对象,因此您可以简单地在其上使用.parent
来获取用户的主目录:
signingConfigs {
release {
storeFile file(project.gradle.gradleUserHomeDir.parent + "/.android/releaseKeystore.jks")
}
}
答案 4 :(得分:0)
为了设置 system-debug-keystore-path,您可以使用以下代码行。
这适用于 MacOS 和 Windows。
signingConfigs {
release {
storeFile "${System.properties['user.home']}${File.separator}.android${File.separator}debug.keystore" as File
keyAlias 'androiddebugkey'
storePassword 'android'
keyPassword 'android'
}
}
buildTypes {
...
release {
signingConfig signingConfigs.release
...
}
}