Укажите зависимость плюща в локальном файле? - PullRequest
2 голосов
/ 23 мая 2009

У меня есть основной проект, где модуль A зависит от файла .jar, созданного сборкой для модуля B. Во время разработки я регулярно модифицирую B, затем собираю B для создания библиотеки, затем здание А, чтобы использовать эти изменения.

Есть ли способ указать файл ivy модуля A на файл jar, который создает мой модуль B? Учитывая, что я повторяюсь несколько раз, я не хочу снова и снова проверять банку модуля B на плющ. Также раздражает необходимость копировать jar в структуру каталогов сборки модуля A после каждой сборки модуля B.

На самом деле, для меня это хуже, так как у меня есть около 4 модулей в чем-то из дерева зависимостей (A-> B-> CD). Если бы это были просто A и B, я бы, вероятно, просто с этим смирился, но мне надоело копировать jar-файлы после сборки подмодуля и подумал, есть ли способ переопределить строку зависимости файла ivy для локального просмотра сделал бы жизнь намного проще.

1 Ответ

4 голосов
/ 23 мая 2009

Указание зависимости Ivy на локально созданном модуле не способ решить эту проблему. Вместо этого, когда вы создаете модуль B, опубликуйте его в своем локальном репозитории Ivy. Когда вы разрешите свои зависимости для модуля A, он выведет модуль B из вашего локального хранилища.

Из документации Ivy в локальном хранилище :

Местный репозиторий особенно полезно, когда вы хотите что-то сделать ничего не беспокоя еще происходит в окружающей среде. Это означает, что всякий раз, когда плющ может найти модуль в этом хранилище он будет использоваться независимо от того, что доступно в других.

Например, если у вас есть модуль объявление зависимости от модуля foo в ревизии последней.интеграции, тогда, если ревизия foo найдена в локальный репозиторий, он будет использоваться, даже если более поздняя редакция доступны в других репозиториях.

Это может беспокоить некоторых вы, но представьте, что вы должны реализовать новая функция в проекте, и в Для того, чтобы достичь того, что вам нужно изменить два модуля: вы добавляете новый метод в модуле Foo и использовать это новый метод в модульной панели. Тогда если вы опубликуйте модуль foo в вашем регионе хранилище, вы обязательно получите его в вашем модуле бара, даже если кто-то еще опубликовать новую версию Foo в общий репозиторий (эта редакция не имея новый метод вы в данный момент добавляю).

Но будьте осторожны, когда вы закончите ваше развитие и опубликовать его на поделился вам придется чистить местное хранилище, чтобы извлечь выгоду из новых версии, опубликованные в общем хранилище.

Обратите внимание, что модули, найденные в локальный репозиторий должен быть полным, то есть они должны предоставить оба модуля дескриптор и опубликованный артефакты.

Документация Использование Ivy в среде с несколькими проектами содержит пример задачи publish-local Ant, которая может оказаться полезной.

...