Gradle打包后自动推送到FTP服务器

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值