Как заставить maven обновлять локальное репо

Я собрал файл jar в одном проекте, чтобы его можно было использовать во втором. Я вижу файл jar в папке .m2. Но во втором проекте он жалуется, что артефакт не найден. Думаю, мне нужно заставить maven обновить индексы/кешировать что-то, но не знаю, что именно. Любой отзыв, спасибо.

Обновление: спасибо за все хорошие предложения. Оказывается, что maven-плагин (IntelliJ) во втором проекте не обновляет свой индекс. Я использую командную строку, которую он скомпилировал.

Ответ 1

Если вы устанавливаете в локальный репозиторий, нет необходимости в специальном обновлении индекса/кеша.

Убедитесь, что:

  • Вы правильно установили первый артефакт в своем локальном репозитории. Простое копирование файла на .m2 может не работать должным образом. Убедитесь, что вы установили его на mvn install

  • Зависимость во втором проекте настроена правильно. Проверьте любую опечатку в groupId/artifactId/version или непревзойденный артефакт type/classifier.

Ответ 2

попробуйте использовать -U (aka --update-snapshots) при запуске maven

И убедитесь в правильности определения зависимостей

Ответ 3

Даже если это старый вопрос, я несколько раз наткнулся на эту проблему и до сих пор не понял, как ее исправить. Индексы update maven - это термин, введенный IntelliJ, и если он все еще не работает после того, как вы скомпилировали первый проект, скорее всего, вы используете 2 разных установки maven.

Нажмите CTRL + Shift + A, чтобы открыть меню "Действия". Введите Maven и перейдите в Настройки Maven. Проверьте домашний каталог на использование того же maven, что и вы, используя командную строку

Ответ 4

Вы также можете использовать эту команду в командной строке:

mvn dependency:purge-local-repository clean install

Ответ 5

Если вы боретесь с аутентификацией на сайте, а Maven кэширует результаты, простое удаление метаданных о сайте из метаданных заставит Maven пересмотреть сайт.

gvim <local-git-repository>/commons-codec/resolver-status.properties