Как заставить MVN Redownload снимок - PullRequest
0 голосов
/ 03 сентября 2018

Я получил проект maven (myApp) в зависимости от другого проекта maven в версии моментального снимка. как:

<dependency>
    <groupId>org.group.dep</groupId>
    <artifactId>arty</artifactId>
    <version>12.1.4-SNAPSHOT</version>
</dependency>

Но у меня возникла проблема с этим после того, как "arty" получил обновление без изменения версии (я знаю, что это будет самое чистое решение). Я собрал локальный myApp и получил старую версию зависимости arty.

Я проверил вариант буксировки, работающий на меня (и колледж):
1) Ручная очистка локального репозитория: переход к моему .m2/repo/org/group/dep/arty и удаление всех папок внутри. После восстановления локального myApp все работало нормально - arty был загружен с artifactory.company.com снова с обновленным содержимым.

2) Локальная сборка пакета arty, чтобы он обновлялся в локальном хранилище. После восстановления локального myApp он работал нормально.

Но у меня возникла похожая проблема с Дженкинсом:
Я получил работу в Дженкинсе, просто строя org.group.myApp без здания до org.group.dep.arty. Не удалось из-за пропущенных изменений формы «арты».

Что я могу сделать сейчас, чтобы решить мою проблему там?
Я не могу полагаться на первое здание org.group.dep.arty, так как не могу быть уверен, что Jenkins запустит оба задания на одном хосте, используя один и тот же локальный репозиторий (я не хочу это менять). Каким-то образом произошел сбой myApp-Jobs после того, как я вручную очистил на этом узле Jenkins org.group.dep.arty в репозитории и запустил его, чем myApp-job (каким-то образом не загружал пакет).

Я наконец нашел mvn -u, но когда я попробовал это, я также был разочарован. Я попробовал разные версии Maven на этом Дженкинсе и получил тот же результат. Нет ли способа принудительно обновить версии снимка?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Простейшим решением для повторной загрузки -SNAPSHOT является использование параметра командной строки: -U или длинного параметра --update-snapshots

Кроме того, ваш проект звучит так, как будто вам требуется многокомпонентная сборка, которая предотвращает подобные проблемы. Или вам может потребоваться определить эти задания в зависимости друг от друга (есть возможность создать, если в Jenkins был обновлен SNAPSHOT).

0 голосов
/ 03 сентября 2018

Является ли этот «другой проект» частью того же многомодульного проекта? Если это так, вы можете построить свой проект с опциями --also-make, чтобы maven эффективно перестроил ваш модуль и все его зависимости

Если это совершенно другой проект, используйте mvn -U для принудительной загрузки всех зависимостей снимка вашего проекта.

Если есть конкретная проблема с одной конкретной зависимостью, рассмотрите возможность использования mvn dependency:get. Эта get цель maven-dependency-plugin загружает один конкретный артефакт из удаленного хранилища

Вот ссылка на документацию плагина

...