将复制任务添加为现有Gradle任务的依赖项

时间:2015-02-10 17:13:50

标签: gradle gradle-plugin

我有一个具有以下目录结构的Groovy应用程序:

build.gradle
gradle.properties
settings.gradle
src/
    main/
        groovy/
            <Groovy code>
        resources/
            config.json
    test/

目前,当我运行gradle clean build shadowJar时(使用ShadowJar plugin ,虽然我不认为这里有相关内容)我留下了一个已编译的,可执行的JAR位于在build/distributions内。我想在我的Gradle文件中添加一个任务,该文件还将src/main/resources/config.json文件复制到此build/distributions位置,理想情况下无需更改构建调用。

我试过了:

task copyJson(type: Copy) {
    from('src/main/resources')
    into('build/distributions')
    include('config.json')
}

然而,这迫使我使用以下构建调用:gradle clean build shadowJar copyJson,这不是我想要的。

所以我问:如何向Gradle构建添加任务,以便运行gradle clean build shadowJar不仅会在build/distributions下生成可执行JAR,还会将src/main/resources/config.json文件复制到该{{1}}位置也是?

1 个答案:

答案 0 :(得分:1)

添加

build.dependsOn copyJson

到你的build.gradle文件。请注意,如果构建应始终创建影子jar,您还可以添加

build.dependsOn shadowJar

并使用gradle build进行构建。