Gradle копировать ресурсы, processResources
Я пытаюсь скопировать 2 папки из своей папки проекта в банку. Когда я использую следующие настройки, Gradle копирует файлы внутри папок, а не сами папки:
processResources {
from 'public'
from 'data'
}
Мне нужно, чтобы папка "projectDir/data" была скопирована в " my.jar / data".
2 ответов
на copy
spec в Gradle копирует содержимое папки, если указанный путь в from
- Это папка.
одним из решений является указание целевой папки в jar
С помощью into
директива.
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
это поместит содержимое или исходные папки в папку с тем же именем в банке. Но, как вы можете видеть, Вам нужно будет повторить имена папок в into
закрытие.
другой обходной путь должен иметь родительскую папку для этих папок ресурсов и использовать эту родительскую папку в copy
spec.
вот один из способов структурирования папок ресурсов:
<project-folder>
|
--> res
|
--> public
--> data
затем в copy
спецификации processResources
, вы можете сделать следующее:
processResources {
from 'res'
}
это создаст папки public
и data
в последнем файле jar, как вы хотите.
существует метод "from", который принимает закрытие с помощью CopySpec.
Я бы рекомендовал использовать это вместо того, чтобы разбивать на отдельные задачи или реструктурировать макет.
processResources {
from('data') {into 'data'}
from('publicFolder') {into 'publicFolder'}
}