#maven #nexus
#maven #nexus
Вопрос:
Я пытаюсь установить последнюю загруженную версию артефакта в свой локальный репозиторий.
Например:
У меня есть артефакт pulsar, который был первоначально загружен 12/10. Я недавно добавил к артефакту pulsar, и у большого двоичного объекта есть обновленная дата 12/17
Blob создан Чт 10 декабря 2020 г. 10:57:13 GMT-0500 (восточное стандартное время) Blob обновлен Чт 17 декабря 2020 г. 12:16:30 GMT-0500 (восточное стандартное время)
Я хотел бы запустить команду, которая будет захватывать последние двоичные объекты для всех артефактов в моем репозитории maven в Nexus
Любая помощь будет оценена!
Спасибо
Комментарии:
1. С какой целью? Почему бы просто не запустить сборку Maven и не позволить Maven загружать артефакты?
2. Итак, мы загружаем артефакты в локальный репозиторий, который используется для наших сборок. Время от времени разработчик добавляет изменения в артефакт и использует тот же artifactId и версию. Мне нужно иметь возможность захватить последний обновленный большой двоичный объект, иначе мне нужно было бы удалить артефакт из локального репозитория вручную, чтобы его можно было повторно загрузить
3. Но почему бы вам просто не использовать Nexus? Зачем вам нужно копировать артефакты из Nexus в локальный репозиторий? Maven автоматически загружает артефакты в локальный репозиторий. Кроме того, он также обновляет зависимости моментальных снимков.
4. Мы используем apache ant для сборки, в противном случае мы включили бы зависимости в сборку. Мы переносим зависимости в локальный репозиторий, который является центральным репозиторием, используемым для нескольких приложений (это не дает нам много места, чтобы каждая сборка захватывала свой собственный набор зависимостей). Если зависимости уже удалены, мы не запускаем установку mvn. Мы просто создаем с помощью ant-скрипта
5. Хорошо, но тогда я бы действительно попытался переключиться с Ant на Maven как можно скорее. Это значительно упростит вашу жизнь. И если вам нужно запустить некоторые части ваших Ant-скриптов, вы также можете сделать это в Maven.
Ответ №1:
Ваш локальный репозиторий maven является одноразовым. На самом деле это просто кеш артефактов, найденных в различных удаленных репозиториях во время предыдущих сборок.
Если вы уже создали для версии 1.0-SNAPSHOT какого-либо артефакта, Maven найдет этот артефакт в вашем локальном репозитории и не будет пытаться обновить его с удаленного.
Вы можете переопределить это с помощью опции -U (—update-snapshots ). Это заставит Maven повторно загрузить артефакты моментальных снимков из вашего репозитория Nexus.
mvn -U clean install ...
HTH