Gradle: как скопировать файл, но сохранить тот же вызов сборки?

В настоящее время моя сборка Gradle создает объемный JAR (через плагин ShadowJar) под build/distributions с помощью следующего вызова сборки:

gradle clean build shadowJar

Теперь мне нужен тот же самый вызов сборки, чтобы скопировать src/main/resources/myconfig.json в build/distributions. Я следовал документам Gradle и добавил в свою сборку следующее:

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

Однако запуск gradle clean build shadowJar не приводит к build/distributions/myconfig.json, как ожидалось. Что я могу сделать, чтобы вызов сборки оставался точно таким же, но вызывал задачу copyConfig (к тому же я даже не уверен на 100%, что задача не содержит ошибок)?


person smeeb    schedule 13.10.2014    source источник


Ответы (1)


Вы создали задачу, но никогда не выполняете ее. Чтобы эта задача вызывалась при выполнении build или shadowJar, одна из этих задач должна зависеть от созданной вами задачи:

build.dependsOn copyConfig

or

shadowJar.dependsOn copyConfig
person JB Nizet    schedule 13.10.2014
comment
Круто, имеет смысл, что @JB Nizet (+1) - я все еще очень новичок в Gradle. - person smeeb; 13.10.2014