2013-12-08 3 views
4

Как написать настраиваемый плагин gradle для обработки зависимостей в пользовательском дескрипторе модуля из пользовательского репозитория? В документации по градиенту написано следующее, но я не смог найти ничего, что говорит мне как.Плагин управления пользовательской зависимостью в Gradle

Даже если ваш проект использует систему управления пользовательским зависимости или что-то вроде .classpath файла Eclipse, как мастер-данные для управления зависимостей, очень легко написать плагин Gradle использовать эти данные в Gradle ,

Я поддержание Custom Ivy resolver for ATG projects (раздвоенные от this project), но в последнее время Gradle осуждается это с версией 1.8, и мне нужен порт реализация в родную плагину Gradle.

Реализации ATG используют «модули» (в отличие от проектов Gradle), которые имеют файл MANIFEST.MF для дескриптора модуля. Эти файлы определяют другие «модули», от которых зависит модуль, а также список путей (банок или каталогов), которые формируют (прямой) путь к текущему модулю.

например.

ATG-Class-Path: lib/classes.jar lib/commons-beanutils-1.7.jar 
ATG-Required: MyProj.core MyProj.integration.webservices DAF.Endeca.Assembler 

Зависимости модулей являются транзитивными и могут относиться к пользовательским модулям или модулям, которые находятся в установке продукта ATG. Следовательно, мне нужно определить пользовательский репозиторий, который может использовать установку продукта ATG в качестве источника артефактов.

Без Gradle, мне нужно поддерживать зависимостей в виде

  1. ATG в MANIFEST.MF файлы
  2. Затмение .classpath файлы
  3. зависимостями для построения Ant-скрипта конфигурации
  4. SonarQube

Поскольку я не могу избавиться от файлов ATG MANIFEST.MF, я бы чтобы написать запись пользовательского плагина, чтобы они могли использоваться в сборках Gradle. Затем я могу использовать Gradle как мою систему сборки, которая также может генерировать файлы Eclipse .classpath и .project и запускать Sonar против проекта.

У Gradle, похоже, много исходного кода, и рыться в нем в течение последних нескольких дней не заставил меня никуда.

Если кто-то может указать мне на список интерфейсов, которые необходимо реализовать, чтобы (1) реализовать пользовательский репозиторий и (2) реализовать пользовательский преобразователь зависимостей (использовать пользовательские файлы в качестве дескрипторов модулей), которые должны быть достаточно, чтобы начать меня.

ответ

0

Использованный выше пример использования Eclipse .classpath можно решить, проанализировав этот файл и переведя его в зависимости от файлов Gradle. В настоящее время невозможно подключить пользовательскую реализацию репозитория.

+0

Понимание того, как обращаться с файлом '.classpath', позволит решить хотя бы половину моей проблемы, поэтому, если бы вы могли объяснить, как это работает, это поможет. –

+0

Проанализируйте файл '.classpath' (например, используя класс XmlSlurper' Groovy) и добавьте зависимости файлов так же, как и в сценарии простой сборки. –

Смежные вопросы