压缩文件并将其移动到gradle

压缩文件并将其移动到gradle,gradle,groovy,Gradle,Groovy,我正在尝试压缩模块中的内容,排除builds文件夹,但它没有运行。我在任务外部打印LN,这很有效,但任务内部不会打印任何内容 task fullZip(type: Zip) { baseName = 'client' //name of the module from 'client' //name of the module exclude 'build' into '../docker/client' doFirst { println 'before

我正在尝试压缩模块中的内容,排除builds文件夹,但它没有运行。我在任务外部打印LN,这很有效,但任务内部不会打印任何内容

task fullZip(type: Zip) {
    baseName = 'client' //name of the module
    from 'client' //name of the module
    exclude 'build'
    into '../docker/client'
    doFirst { println 'before zip' }
    doLast { println 'after zip' }

}
这是一个多模块项目,我已经运行了gradle clean build和gradle build。其他模块工作得很好,但它们的任务是复制一个jar,我在这些任务结束时使用Assembly.dependsOn。这在这种情况下是行不通的


我只想将模块压缩并移动到另一个目录,在那里我将解压缩它。

聊天讨论摘要:

task fullZip(type: Zip) {
    baseName = 'client'
    from projectDir
    exclude 'build'
    destinationDir = file('../docker/client')
}

build.dependsOn fullZip
主要问题是from参数中的相对路径,该参数确实有效,因为它是相对于项目目录进行解释的

此外,根据,该方法

为文件指定存档中的目标目录。目标按照Project.filejava.lang.Object进行评估。不要将它与AbstractArchiveTask.getDestinationDir混淆,后者指定存档的输出目录


这两种方法混在一起了。最后,通过任务依赖项注册将任务添加到构建生命周期。

您应该!它不是public Gradle API的一部分。相反,让Gradle通过命令行指定任务或注册任务依赖项来执行任务。@lu.koerfer Ok I execute。我仍然无法运行此任务。您如何调用Gradle以及输出是什么?你的项目结构如何?请将这些详细信息添加到您的问题中。@lu.koerfer请查看更新您是否希望通过gradle fullZip单独调用此功能,或者在调用gradle build时将其作为常规构建生命周期的一部分?请添加渐变生成调用的输出。