我想在构建发布版本时自动将APK文件上传到服务器。
为此,我将使用FTP协议。
我是关于Gradle脚本的新手。我使用了这2个问题(this和this)作为基础,但有些事情没有成功。
有人能指出它是什么吗?
这是代码(在build.gradle上):
gradle.buildFinished {
println("---- Build finished. This message appears ----")
task ftp << {
project.logger.lifecycle('-- This message does not appear --')
ant {
taskdef(name: 'ftp',
classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP',
classpath: configurations.ftpAntTask.asPath)
def destination = "ftp://xxxxxxxxxx@xxx.surftown.com/xxxxx/"
def source = null
android.applicationVariants.all { variant ->
if ( (variant.name).equals("release") ) {
variant.outputs.each { output ->
source = output.outputFile
}
}
}
def user = 'xxxxxxxxx'
def pass = 'xxxxxxxxx'
ftp(server: source, userid: user, password: pass, remoteDir: destination)
}
}
答案 0 :(得分:0)
gradle.buildFinished
注册在构建结束时执行的钩子。在您的情况下,它只是创建ftp
任务。
如果涉及build
任务,请使用此选项:
build.finalizedBy(ftp)
否则,确保它适用于任何调用的任务:
tasks.all*.finalizedBy(ftp)
顺便说一下,你的第一个链接的第一个答案的评论部分对此进行了解释。