2013-10-06 20 views
6

我创建了一个编译Android项目的gradle.build。它正在生成正确的APK,并且作为后期构建步骤,我想将它们复制到具有更有意义的名称的另一个文件夹中。因为它没有源文件,因此跳过任务X的Gradle

我已经写了这个任务来实现这一目标:

task copyBundle(type: Copy) { 
    def versionCode = android.defaultConfig.versionCode 
    def buildDate = new Date().format("yyyy-MM-dd'T'HH-mm") 

    def outputFile = 'HexPath-android-release-' + buildDate + '-' + versionCode + '.apk' 

    println "Copying file to " + outputFile 

    from('HexPath-android/build/apk/') 
    into('output/android/') 
    include('HexPath-android-release.apk') 
    rename ('HexPath-android-release.apk', outputFile) 
} 

我遇到的问题是,它跳过这个任务说:“跳过任务‘:HexPath-安卓copyBundle’,因为它没有源文件。

什么我做错了任何想法?

从文件夹中是正确的,有几个.apks。 的包括文件名是正确的。 当脚本运行了输出文件夹不存在。 重命名是一个有效的文件名。

+0

是不是'HexPath-android'包含此复制任务的构建脚本的目录?此外,该任务似乎缺少产生apk的任务的依赖任务。 –

+0

是的,谢谢你指出。看起来这是在from函数中使用错误路径的情况。 – Demonofloom

回答

0

你说这个文件夹有几个APK文件,但是在这里你只包括一个可能的文件,它必须命名为'HexPath-android-release.apk'。你有这个文件吗?

如果你想正是这一个文件每次复制,那么我建议你重写结束这样的事情:

from('HexPath-android/build/apk/HexPath-android-release.apk') { 
    rename { outpuFile } 
} 
into('output/android/') 

但是如果你想多个文件复制,然后修改你的“包括”段有一些通配符,并可能会创建一个关闭来创建他们的输出名称。希望这可以帮助。

此外,是不是HexPath-android项目本身。不应该从'build ...'开始吗?

相关问题