Gradle跳过任务X,因为它没有源文件

Dem*_*oom 6 android gradle

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

我写了这个任务来实现这个目的:

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)
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它跳过这个任务说"跳过任务':HexPath-android:copyBundle',因为它没有源文件.

关于我做错了什么的任何想法?

from文件夹是正确的,有几个.apks.包含文件名是正确的.运行脚本时输出文件夹不存在.重命名是有效的文件名.

小智 0

您说该文件夹有多个 APK 文件,但在这里您只包含一个可能的文件,该文件必须准确命名为“HexPath-android-release.apk”。你那里有这个文件吗?

如果您希望每次都复制这个文件,那么我建议将末尾重写为如下内容:

from('HexPath-android/build/apk/HexPath-android-release.apk') {
    rename { outpuFile }
}
into('output/android/')
Run Code Online (Sandbox Code Playgroud)

但是,如果您想要复制多个文件,请修改您的“include”段以包含一些通配符,并可能创建一个闭包来创建它们的输出名称。希望这可以帮助。

另外,HexPath-android 不是项目本身吗?路径不应该从“build...”开始吗?