#java #gradle #groovy
Вопрос:
Я использую локальный flatDir
репозиторий Gradle следующим образом:
repositories {
flatDir {
dirs 'D:/path/to/local/directory'
}
}
но он ищет только файлы первого уровня. Мне интересно, есть ли возможность указать Gradle, чтобы найти зависимости по всему хранилищу, чтобы я мог организовать свои банки по группам и все равно заставить Gradle прочитать их все без указания групп.
Ответ №1:
Вы рассматривали возможность использования соглашений о каталогах Maven вместо flatDir
этого ?
Например, храните банки, такие как
myLocalRepo/com/foo/bar/1.0/bar-1.0.jar
myLocalRepo/com/foo/baz/2.0/baz-2.0.jar
Затем в build.gradle
repositories {
maven {
uri file('myLocalRepo')
}
}
dependencies {
compile 'com.foo:bar:1.0'
compile 'com.foo:baz:2.0'
}
Комментарии:
1. Но что, если у меня слишком много банок для ручного создания этой иерархии папок? Знаете ли вы какой-нибудь быстрый способ добиться этого?
2. Откуда взялись ваши банки? Возможно, в каждой банке есть группа/артефакт/версия (GAV) в текстовом файле в банке. Например, под
META-INF
каталогом внутри банки. Если это так, то достаточно просто написать скрипт для перебора всех банок, чтения GAV из каждой и копирования их в макет каталога, подобный maven