gradle打包后自动推送到FTP服务器
1.使用Gradle生成APK
- Android Studio项目的根目录下有一个gradle.properties文件,专门用来配置全局键值对数据;在该文件中添加如下内容:
KEY_PATH = D:/KeyStorePath/keystore/keystore.jks
KEY_PASS = pwdkeystore
ALIAS_NAME = keyAlias
ALIAS_PASS = pwdkeyAlias
- 编辑app/build.gradle文件,在android闭包中添加如下内容:
signingConfigs {
config {
storeFile file(KEY_PATH)
storePassword KEY_PASS
keyAlias ALIAS_NAME
keyPassword ALIAS_PASS
}
}
- 在buildTypes的release闭包中添加如下内容:
signingConfig signingConfigs.config
- 添加完成后,可分别通过as右侧的gradle的app/build/assembleRelease、app/build/assembleDebug来打release包和debug包;
2.打包成功后将apk文件推送到ftp服务器
- 在app/build.gradle的android闭包中添加以下代码:
configurations {
ftpAntTask
}
- 在dependencies闭包中添加以下依赖:
ftpAntTask("org.apache.ant:ant-commons-net:1.8.4") {
module("commons-net:commons-net:1.4.1") {
dependencies "oro:oro:2.0.8:jar"
}
}
- 在与android同级中新建任务(task):
//将gradle生成的release包推送到ftp服务器
task uploadReleaseToFtp {
//在assembleRelease执行之后再执行
dependsOn ‘assembleRelease‘
doLast {
ant {
taskdef(name: ‘ftp‘,
classname: ‘org.apache.tools.ant.taskdefs.optional.net.FTP‘,
classpath: configurations.ftpAntTask.asPath)
ftp(server: "xxx.xxx.xxx.xxx",
userid: "userid", //用户名
password: "password", //密码
//上传后文件存储的目录
remoteDir: "/ldc/") {
//本地文件路径
fileset(dir: "build/outputs/apk/release") {
include(name: "app-release.apk")
}
}
}
}
}
//将gradle生成的debug包推送到ftp服务器
task uploadDebugToFtp {
//在assembleDebug执行之后再执行
dependsOn ‘assembleDebug‘
doLast {
ant {
taskdef(name: ‘ftp‘,
classname: ‘org.apache.tools.ant.taskdefs.optional.net.FTP‘,
classpath: configurations.ftpAntTask.asPath)
ftp(server: "xxx.xxx.xxx.xxx",
userid: "userid", //用户名
password: "adminftp123", //密码
//上传后文件存储的目录
remoteDir: "/ldc/") {
//本地文件路径
fileset(dir: "build/outputs/apk/debug") {
//要上传的文件名
include(name: "app-debug.apk")
}
}
}
}
}
在执行以上任务时,需要将防火墙关闭,否则在运行时会出现上传文件大小为0的情况
原文地址:https://www.cnblogs.com/Ricardoldc/p/10335506.html
时间: 2024-10-10 07:29:58