Ivy: локальное разрешение и публикация JAR-файлов

Мы используем Ivy в течение нескольких месяцев, и у нас есть собственный хостинг "Ivy Repo" на веб-сервере здесь, в офисе. Все наши проекты настроены на переход в это репо для разрешения зависимостей.

У нас есть несколько JAR-файлов обычного типа, которые используются во многих наших проектах. Из-за этого и поскольку у нас есть только 1 репо, мы обнаруживаем много уродливых накладных расходов, связанных со следующим сценарием:

  • Разработчику дается задача добавить функцию в Проект 1 (которая зависит от Common jar )
  • В ходе разработки Проекта 1 разработчик понимает, что ему / ей необходимо внести изменения в Common jar
  • Общие изменения jar внесены
  • Common jar должен пройти проверку кода и обычное продвижение кода
  • Мастер сборки публикует новый Common jar
  • Проект 1 может возобновить разработку теперь, когда Common jar был обновлен

Это становится нелепым и болезненным для нашей команды.

Для меня очевидным решением является предоставление целей ant в каждом проекте, которые позволяют разработчику публиковать / разрешать локально (в свою файловую систему и из нее). Таким образом они могут 9 раз сломать Common jar до воскресенья, не теряя 2–4 дня на ожидание публикации Common. Таким образом, разработчик вносит локальные изменения как в Project 1, так и в Common, а код сразу проходит весь процесс продвижения.

Я знаю, что это возможно с Айви, но я так новичок в этом, что даже не знаю, с чего начать.

В настоящее время мы используем глобальный файл ivy.settings для всех проектов. В файле настроек мы используем преобразование цепочки, в котором есть 1 преобразователь URL, который подключается к нашему «репозиторию плюща».

Я полагаю следующее изменение, которое будет необходимо, но я не уверен на 100%:

  • В ivy.settings нам нужно будет добавить преобразователь локальной файловой системы до вызова преобразователя URL-адресов; таким образом мы проверяем локальную файловую систему на наличие зависимостей перед тем, как перейти к репозиторию ivy (веб-серверу)
  • Настройте каждый проект ivy.xml с опцией, позволяющей каким-то образом публиковать локальный кеш.
  • Настроить Ant создает цель локально опубликовать , которая реализует упомянутую выше опцию

Я полагаю , что эти изменения позволят нам: (1) всегда искать локально зависимости, прежде чем искать веб-сервер, (2) опубликовать локально как вариант сборки (цель).

Если это неправда, или если я пропускаю какие-либо шаги, , пожалуйста, сообщите! В противном случае я, вероятно, смогу понять, как добавить преобразователь файловой системы из документации Ivy, но понятия не имею, как заставить работать цель publish-locally . Любые идеи? Заранее спасибо!

7
задан IAmYourFaja 14 January 2012 в 20:36
поделиться