gpt4 book ai didi

gradle - gradle触发另一个任务的文件复制

转载 作者:行者123 更新时间:2023-12-03 06:26:45 24 4
gpt4 key购买 nike

我有一个gradle任务,它扫描依赖的jar,我想将所有依赖的jar放在新目录中

使用ResolvableDependencies API,我能够识别源文件夹和目标文件夹。

以下是示例源文件夹和目标文件夹

sourcePath

D:\Users\myuserId\.gradle\caches\modules-2\files-2.1\io.netty\netty-handler\4.0.27.Final\91d5c8e25150759bdfce680f318e7b3e8a493b1f

targetPath
D:\sourcecode\18_04_2017\my-project\build-repo\io\netty\netty-handler\4.0.27.Final

我的build.gradle中有以下任务
task myCopy(type: Copy)

我正在调用以下任务,但它不起作用
myCopy.configure{
from (sourcePath)
into (targetPath)
}

myCopy.execute()

我从另一篇SO帖子中了解到,无法从其他任务调用该任务,我们需要指定“dependsOn”。但就我而言,我需要在循环中复制文件,并且源和目标路径是根据循环中的条件派生的。
在这种情况下,如何使用gradle复制方法?还是我可以复制其他方式?

最佳答案

能否请您说明如何扫描这些依赖项?

如果您不想创建Copy类型的任务,
您可以在循环执行的任务中使用复制闭包。

task yourtask {

inputs.dir 'some-dir'
outputs.dir 'some-dir'
//or files

doLast {
copy {
from (sourcePath)
into (targetPath)
include '*.jar'
}
}
}

请注意,我们将其包装为 doLast,因为在配置阶段
即使您没有调用它来执行,它也会执行。 dolast将其移至执行阶段。

还要记住有关输入和输出的信息,以确定何时应该执行或不应该执行任务,并标记为UP-TO-DATE在使用类型为 Copy的任务时已经设置好了这些输入和输出

关于gradle - gradle触发另一个任务的文件复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com