如何使用gradle脚本从某个源路径复制文件?

时间:2016-03-17 11:08:05

标签: gradle groovy

我正在尝试使用gradle复制javadocs的图像。 Currenly图像位于

MYPROJECT/src/main/resources/doc-files/images/

我用这样的东西来引用这些图像

<img src="{@docRoot}/doc-files/images/myimage.jpg">

现在,我希望将MYPROJECT/src/main/resources/doc-files/下的所有内容复制到MYPROJECT/build/docs/javadoc/doc-files/,然后写入build.gradle

javadoc << {

    FileTree docFilesTree = fileTree(dir: 'src/main/resources/doc-files')

    copy {
        from docFilesTree
        into destinationDir
    }

}

这有两个问题:

1)它没有做任何事情:))

2)它明确指出resources/doc-files/images/,而我想从参数中推断出它。我不知道如何使用此处的内容:https://docs.gradle.org/current/userguide/java_plugin.html

1 个答案:

答案 0 :(得分:1)

我不确定你想要从参数中推导resources/doc-files/images是什么意思。

但是,如果要将文件从一个目录复制到另一个目录,则可以创建一个任务,例如:

FileTree docFilesTree = fileTree(dir: 'src/main/resources/doc-files')

task copyJavaDocSupportFiles(type: Copy) {
    from docFilesTree
    into 'build/docs/javadoc/doc-files/'
}

然后,您可以将此依赖项添加到javadoc任务,例如:

task generateJavadocs(type: Javadoc, dependsOn: ['copyJavaDocSupportFiles']) {
    source = sourceSets.main.allJava
}

当您运行generateJavadocs任务时,它会将文件从src/main/resources/doc-files复制到build/docs/javadoc/doc-files