Я работаю над внедрением системы сборки Gradle для части программного обеспечения, которая имеет части, которые разработаны в области без подключения к Интернету или возможность установки сервера Maven/Ivy (например, Nexus). Чтобы поддерживать разработку в этих средах, я собираю плагин Gradle, который позволяет создавать «автономную рабочую область».Build Gradle repository для автономного развития
Первоначально я реализовал эту функциональность, инициировав разрешение каждой конфигурации в проекте (инициируя загрузку всех зависимостей), а затем обход всего дерева зависимостей каждой конфигурации и копирование локальной кэшированной копии зависимостей в автономную рабочую область , (Задача копирования была сгенерирована для каждой операции копирования.) Эти JAR будут ссылаться на репозиторий flatDir.
Эта реализация выполнила свою работу с использованием блока afterEvaluate. Хотя это отлично работало в Gradle 2.0, оно запускает предупреждение об устаревании в Gradle 2.2.1, потому что запуск разрешения как-то рассматривается как изменение конфигурации после того, как оно уже разрешено (Attempting to change configuration ':core:runtime' after it has been included in dependency resolution. This behaviour has been deprecated and is scheduled to be removed in Gradle 3.0
). В целом, этот подход кажется довольно взломанным, так как он также требует, чтобы я модифицировал файлы build.gradle, чтобы явно перечислять все транзитивные зависимости, поскольку нет доступных POM-файлов для правильного указания зависимостей.
Более элегантный подход кажется, что он построит локальный репозиторий Maven всех зависимостей (включая POM-файлы, исходные JAR-файлы, javadoc JAR и т. Д.), А затем просто используйте тип хранилища mavenLocal(). К сожалению, я не уверен, как это сделать правильно, где мне не нужно вызывать разрешение артефакта, чтобы выполнить эту операцию.
Есть ли какой-нибудь лучший способ, которым я могу добиться полной загрузки артефактов в простой способ, чем просто перевернуть весь мой каталог USER_HOME/.gradle?
Английский README будет в порядке – Cesar
Этот плагин ivypot классный. Но это не решает мою проблему. Мне нужно кэшировать только ограниченный набор зависимостей, которые поступают из частного репозитория. Мне не нужно все кэшировать. Итак, мне нужно найти другой похожий плагин или реализовать функцию в этом коде плагина. – kinORnirvana