Gradle zip 任务给出 NO-SOURCE

标签 gradle

我有一个 gradle zip 任务,说“X”,第一次工作正常。但之后它给出以下内容:

跳过任务“:X”,因为它没有源文件,也没有以前的输出文件。

我的代码是:

project.task("X", type: Zip) {
        String zipSrc = "/target/files"
        Path path= Paths.get("${project.rootDir}${zipSrc}")
        if(Files.exists(path)){
            archiveName = "${project.rootProject.name}-files.zip"
            destinationDir = project.file("${project.buildDir}/libs")
            from "${zipSrc}"
        }
    }

project.tasks['X'].dependsOn('compileJava')

最佳答案

Zip 任务会自动检查是否有要 Zip 的文件,因此无需使用 Files.exists(...) 检查。

from "${zipSrc}"中,zipSrc被视为绝对路径/target/files

我认为你想要完成的是

project.task("X", type: Zip) { 
    String zipSrc = "target/files" // zipSrc no longer absolute
    archiveName = "${project.rootProject.name}-files.zip"
    destinationDir = project.file("${project.buildDir}/libs")
    from "${zipSrc}"
}

关于Gradle zip 任务给出 NO-SOURCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53719980/

相关文章:

用于更新多个数据库的 Gradle flyway 脚本

gradle - 如果文件被Gradle守护程序锁定,如何处理情况

maven - mavenCentral()、jCenter() 和 mavenLocal() 的区别?

spring-boot - Logback.xml中的程序包筛选器

java - 如何让 Dagger 2 与 Android Studio Java 库项目一起工作

build - Gradle 全局构建目录

java - Spotless gradle 插件无法在封闭系统上工作

jenkins - 如何将工件放在远程服务器中并解压缩

gradle - 创建新项目时未显示 IntelliJ Gradle 项目选项

java - 谷歌登录 ApiException : 10: