我有一个具有以下目录结构的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}}位置也是?
答案 0 :(得分:1)
添加
build.dependsOn copyJson
到你的build.gradle文件。请注意,如果构建应始终创建影子jar,您还可以添加
build.dependsOn shadowJar
并使用gradle build
进行构建。