2009-07-04 4 views
5

Существует плагин cruisecontrol, который проверяет изменения зависимостей моментальных снимков, при необходимости запуская сборку. Это предполагает использование Maven-встраивания для загрузки зависимостей, а затем проверку временных меток файлов моментальных снимков в локальном репозитории. Это работает нормально, но включает загрузку всех родителей и зависимостей для проверки некоторых временных меток.проверка изменений зависимостей моментальных снимков maven на сервере непрерывной интеграции

Я работаю над распределенной системой CI (например, Bamboo/Buildforge) и хотел бы избежать загрузки всей иерархии зависимостей, чтобы проверить, требуется ли сборка. Можно определить дату сборки зависимости от моментального снимка, проверив файл maven-metadata.xml в удаленном репозитории.

Есть ли какие-либо плагины или инструменты для оптимизации этого процесса?

+0

Вы имеете в виду, что вы строите распределенную систему CI? –

+0

Нет, я использую Buildforge как систему CI, каждая сборка может произойти на произвольном агенте, и я хочу, чтобы не разрешать всю иерархию зависимостей Maven, чтобы определить, изменились ли какие-либо снимки. Информация для этого находится в файлах maven-metadata.xml репозитория. Я ищу инструменты, чтобы не обрабатывать этот файл самостоятельно. –

+0

'например,' означает «например», поэтому исходный вопрос звучит так, будто вы работаете над чем-то похожим на Bamboo или Buildforge, вместо того, чтобы специально использовать эти инструменты. –

ответ

1

Похоже Mercury обеспечивает более высокий уровень API, который я искал.

Mercury обеспечивает нейтральный для реализации способ доступа к репозиториям на основе GAV, включая репозитории AV, такие как OSGi. Доступ к OSGi еще не реализован. Под доступом я имею в виду чтение артефактов и метаданных из репозиториев и запись артефактов в репозитории, метаданные обновляются с помощью записей.

Все вызовы принимают коллекцию запросов в качестве ввода и возвращают объект, который скрывает getResults, который обычно представляет собой карту < queryElement, Collection> response.Объект ответа удобство Митос hasExceptions(), hasResults(), getExceptions(), getResults()

Одним из ключевых элементов является иерархия Артефакт данных:

  • ArtifactCoordinates - это действительно 3 компонентов GAV
    • ArtifactBasicMetadata - это координаты плюс типа/классификатор плюс удобные методы, такие как расчет хэша и такие
  • ArtifactMetadata добавляет список объектов зависимостей, захваченных в качестве ArtifactBasicMetadata
  • DefaultArtifact реализует интерфейс артефакта и добавляет pomBlob (байт []) и файл, который указывает на двоичном
2

Предполагая, что вы используете maven в качестве процесса сборки, вы хотите, чтобы плагин выполнял проверку и условную сборку.

Я не знаю ни одного плагина maven, который будет делать именно то, что вы хотите. Тем не менее, вы должны иметь возможность объединить пару плагинов для того же эффекта.

Используйте плагин exec с помощью «wget», чтобы получить maven-metadata.xml. Затем используйте плагин xslt, чтобы преобразовать полученный XML в логическое значение, которое укажет, произошло ли обновление. Вы захотите использовать XPath для узла // metadata/versioning/lastUpdated и сравнить его с текущей датой и временем. Наконец, вам нужно будет изучить полученный преобразованный XML, чтобы определить, следует ли вам продолжать сборку.

Найти эти плагины в http://mojo.codehaus.org/plugins.html

+0

Я знаю, что могу сунуть его вместе и иметь. Я ищу библиотеку, полезность или что-то, что позволяет избежать необходимости взлома –

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