码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-01-29 20:41:01      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:keystore   新建   文件名   bug   kde   dmi   闭包   debug   types   

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的情况

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

标签:keystore   新建   文件名   bug   kde   dmi   闭包   debug   types   

原文地址:https://www.cnblogs.com/Ricardoldc/p/10335506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!