Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。 官方下载地址
常用命令
# 执行 java 单元测试
gradle app:test
# 执行 android 单元测试
gradle app:connectedAndroidTest
# 查看编译时依赖树
gradle app:dependencies --configuration compile
# 查manifest merge问题
gradle processReleaseManifest --stacktrace
# g
常用脚本
//生成时间
def releaseTime() {
if (BuildType.name.equals("release")){
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00"))
}else {
return new Date().format("yyyyMMdd_HHmmss", TimeZone.getTimeZone("GMT+08:00"))
}
}
//设置apk生成路径
applicationVariants.all { variant ->
if (variant.buildType.name != "debug") {
variant.packageApplicationProvider.get().outputDirectory = new File(projectDir.absolutePath+"/apk/"+variant.buildType.name)
}
variant.outputs.forEach { apkData ->
//这个修改输出APK的文件名
apkData.outputFileName = "平台开发版_" +
variant.versionName + "_" +
variant.buildType.name + "_" +
variant.versionCode + "_" +
new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00")) +
".apk"
}
}
常见的问题
It is currently in use by another Gradle instance
- 解决方式 关闭AS,执行以下命令,等待命令执行成功,重新clean,build后成功解决该问题。 ``` find ~/.gradle -type f -name “*.lock” | while read f; do rm $f; done
find ~/.gradle -type f -name “*.lock” -delete ```