Important
强烈建议遵循Github官方文档进行部署。
- 在项目根目录的
setting.gradle文件中添加如下内容:
dependencyResolutionManagement {
repositories {
maven {
url = uri("https://maven.pkg.github.com/aquamarine5/stackbricks-gradle-plugin")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("GPR_USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("GPR_TOKEN")
}
}
}
}Warning
请确保gpr.user和gpr.key的值已经在gradle.properties配置,或通过环境变量配置。
- 随后在
build.gradle文件中添加如下项:
plugins {
id "org.aquamarine5.brainspark.stackbricks-gradle-plugin" version "$latest_sgp_version"
}Note
目前最新版本为2.1.1,请将$latest_sgp_version替换为最新版本号,详见此。
Caution
暂时不打算对Gradle Plugin Portal源进行支持,可用的版本已明显落后最新版本,请不再使用此方法添加。
- 直接使用Gradle Plugin Portal源
- 在
setting.gradle内,Gradle Plugin Portal源已默认启用(gradlePluginPortal()),无需再自行配置。 - 在
build.gradle文件添加以下项:
plugins {
id "io.github.aquamarine5.stackbricks-gradle-plugin" version "$latest_sgp_version"
}Note
目前最新版本为1.2,此源的更新速度会略慢于Gradle源,使用时请将$latest_sgp_version替换为最新版本号,详见此。
Tip
两种源的id不相符,但包内容一致,原因详见Gradle Plugin Portal对于包命名的要求。
- 在
build.gradle文件加入以下配置信息:
stackbricksConfig {
host = "$cdn_host"
configJsonFilePath = "stackbricks_manifest_v3.json"
changelog = "lovely lonely"
qiniuConfig {
accessKey = project.findProperty("qiniu.accessKey")
secretKey = project.findProperty("qiniu.secretKey")
bucket = "$bucket"
referer = project.findProperty("qiniu.referer") ?: ""
}
}Note
如果七牛云的存储空间未设置Referer防盗链设计,referer传入null或空字符串即可。
host值不需要http(s)://前缀。
关于七牛云的对象存储服务,详见此。
gradle uploadApkByQiniu- 运行
uploadApkByQiniu命令后会自动执行assembleRelease命令,生成APK文件,并上传到七牛云,更新Stackbricks配置文件。
Important
确保build.gradle正确配置了针对buildTypes.release.signingConfig的签名信息,避免生成app-release-unsigned.apk导致上传失败。
{
"manifestVersion": 3,
"latestStable": {
"changelog": "<string>",
"downloadUrl": "<string, only file_name>",
"forceInstall": "<boolean, BUT DEPRECATED, USE forceInstallLessVersion FIELD>",
"packageName": "<string>",
"releaseDate": "<long as Instant>",
"versionCode": "<int>",
"versionName": "<string>",
"forceInstallLessVersion": "<int>"
},
"latestTest": {
"changelog": "<string>",
"downloadUrl": "<string, only file_name>",
"forceInstall": "<boolean, BUT DEPRECATED, USE forceInstallLessVersion FIELD>",
"packageName": "<string>",
"releaseDate": "<long as Instant>",
"versionCode": "<int>",
"versionName": "<string>",
"forceInstallLessVersion": "<int>"
}
}{
"manifestVersion": 2,
"latestStable": {
"changelog": "<string>",
"downloadUrl": "<string, only file_name>",
"forceInstall": "<boolean>",
"packageName": "<string>",
"releaseDate": "<long as Instant>",
"versionCode": "<int>",
"versionName": "<string>"
},
"latestTest": {
"changelog": "<string>",
"downloadUrl": "<string, only file_name>",
"forceInstall": "<boolean>",
"packageName": "<string>",
"releaseDate": "<long as Instant>",
"versionCode": "<int>",
"versionName": "<string>"
}
}{
"@version": 1,
"@type": "stackbricks-config",
"latest": {
"versionCode": "<int>",
"versionName": "<string>",
"downloadUrl": "<string>",
"releaseDate": "<long as Instant>",
"packageName": "<string>"
},
"versions": [
"<StackbricksVersionData>"
]
}