我有一个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复制方法?或者还有其他方法可以复制吗?
答案 0 :(得分:0)
请告诉您如何扫描这些依赖项?
如果您不想创建类型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
<的任务时已经设置的/ p>