С maven я иногда сталкиваюсь с артефактом, исходящим из какого-либо стороннего репозитория, который я еще не построил или не включил в свой репозиторий.
Я получу сообщение об ошибке от клиента maven, в котором говорится, что артефакт не найден:
Ошибка поиска org.jfrog.maven.annomojo: maven-plugin-anno: jar: 1.4.0 in
http://myrepo:80/artifactory/repo
была кэширована в локальном репозитории, разрешение не будет повторно предпринято, пока не истечет интервал обновления MyRepo или принудительные обновления -> [ Помощь 1]
Теперь я понимаю, что это значит, и могу просто перезапустить мою команду -U
, и с этого момента все работает нормально .
Тем не менее, я нахожу это сообщение об ошибке крайне не интуитивным и пытаюсь избавить моих коллег от головной боли.
Я пытаюсь выяснить, есть ли место, где я могу изменить этот update interval
параметр.
- Является ли
update interval
упомянутое в этом сообщении об ошибке настройкой на стороне клиента или на стороне сервера? - Если на стороне клиента, как я могу настроить это?
- Если на стороне сервера, кто-нибудь знает, как / если Nexus / Artifactory выставляет эти настройки?
источник
pom.xml
.Ответы:
Я использовал для решения этой проблемы, удалив соответствующий не удалось загрузить каталог артефактов в моем локальном репо. При следующем запуске команды maven загрузка артефакта снова запускается. Поэтому я бы сказал, что это настройка на стороне клиента.
На стороне Nexus (на стороне сервера репо) эта проблема решается при настройке запланированной задачи. На стороне клиента, это делается с помощью
-U
, как вы уже указали.источник
вы можете удалить соответствующий сбойный каталог артефактов в вашем локальном репозитории. А также вы можете просто использовать
-U
в цели. Это сделает работу. Это работает с Maven 3. Поэтому нет необходимости понижать до Maven 2.источник
~/.m2/settings.xml/<repositories>
чтобы решить эту проблему с опциями -UУ меня была связанная проблема, но ответ Рагурама помог. (У меня пока недостаточно репутации, чтобы голосовать за него). Я использую Maven в комплекте с NetBeans и получаю то же самое "... было кэшировано в локальном хранилище, разрешение не будет повторно предпринято, пока не истечет интервал обновления нексуса или не произойдет принудительное обновление -> [Помощь 1]" ,
Чтобы это исправить, я добавил
<updatePolicy>always</updatePolicy>
в свой файл настроек (C: \ Program Files \ NetBeans 7.0 \ java \ maven \ conf \ settings.xml)источник
По сути, происходит следующее: по умолчанию updatePolicy от maven.Maven будет извлекать банки из репозитория ежедневно. Так что, если во время 1-й попытки ваш интернет не работал, он не будет пытаться получить эту банку снова, пока не потрачено 24 часа.
Разрешение :
Либо использовать
где -U заставит обновить репо
или использовать
в вашем файле settings.xml
источник
Согласно справке настроек :
Пример:
источник
Хотя вы можете решить эту проблему с помощью чистой установки (переопределяя любые кэшированные зависимости), как @ Sanjeev-Gulgani предлагает
mvn -U clean install
Вы также можете просто удалить кэшированную зависимость, которая вызывает проблему с
Смотрите mvn docs для получения дополнительной информации.
источник
Эта ошибка может иногда вводить в заблуждение. 2 вещи, которые вы можете проверить:
Есть ли фактический JAR для зависимости в репо? Ваше сообщение об ошибке содержит URL-адрес, по которому оно ищет, поэтому перейдите туда, а затем перейдите к папке, которая соответствует вашей зависимости. Есть ли банка? Если нет, вам нужно изменить свою зависимость. (например, вы можете указывать на родительскую зависимость верхнего уровня, когда вы должны указывать на подпроект)
Если баночка существует в удаленном репо, просто удалите свою локальную копию. Он будет находиться в вашем домашнем каталоге (если вы не настроили иначе) в .m2 / repository (ls -a для отображения скрытого, если в Linux).
источник
Если вы используете Eclipse, перейдите в Windows -> «Настройки» -> Maven и снимите флажок «Не обновлять зависимости из удаленных репозиториев» автоматически.
Это работает и с Maven 3.
источник
Вам необходимо удалить все файлы "_maven.repositories" из вашего хранилища.
источник
Это работает после удаления связанной зависимости из вашего локального репозитория maven.
источник
Если вы используете Nexus в качестве прокси-сервера репозитория, он имеет параметр «Not Found Cache TTL» со значением по умолчанию 1440 минут (или 24 часа). Понижение этого значения может помочь (Хранилища> Конфигурация> Настройки срока действия).
Смотрите документацию для получения дополнительной информации.
источник
Как я получил эту проблему,
Когда я перешел с Eclipse Juno на Luna и оформил свои maven проекты из репозитория SVN, у меня возникли те же проблемы при создании приложений.
Что я пробовал? Я попытался очистить локальный репозиторий, а затем снова обновить все версии, используя опцию -U. Но моя проблема продолжалась.
Затем я зашел в Window -> Preferences -> Maven -> User Settings -> и нажал на кнопку Reindex в Local Repository и дождался, когда произойдет переиндексация.
Вот и все, проблема решена.
источник
Чтобы окончательно ответить на заглавный вопрос: Это (настройка на стороне клиента) в (проект, профиль или настройки)
... тег.
Возможные значения (в настоящее время maven: 3.6.0, но я полагаю, что «далеко назад»):
Текущая оценка (maven 3.6.0) этого тега реализована следующим образом:
..с:
... где
lastModified
(локальный файл) "измененная временная метка" / каждого базового артефакта.В частности для
interval:x
настройки::
не так строго - любой «непустой» персонаж может сделать это (=
,, ...).
x < 0
должны уступать «никогда».interval:0
Я бы предположил, что интервал «мельчайший» (0-59 секунд или выше ...).24 * 60
минутам (~ "ежедневно")...see: DefaultUpdatePolicyAnalyzer , DefaultMetadataResolver # resolMetadata () и RepositoryPolicy
источник
Для пользователей Intellij у меня работало следующее:
Щелкните правой кнопкой мыши на вашем пакете
а также
источник
Немного уместно .. Я получал
Эта ошибка была вызвана случайным использованием
Maven 3
вместоMaven 2
. Просто подумал, что это может сэкономить кому-то время, потому что мой первоначальный поиск в Google привел меня на эту страницу.источник
Maven имеет параметры updatePolicy для указания частоты проверки обновлений в хранилище или для синхронизации хранилища с удаленным.
Приведенный ниже пример кода может быть добавлен в файл настроек пользователя maven для настройки updatePolicy.
источник
If client-side, how do I configure it?
. Этот ответ не о какой-либо функции IDE. Это mvn только конфигурация хранилища.updatePolicy
Интервал ОП просит о.В моем случае решение было глупым: у меня были неверные версии зависимостей.
источник
У меня была эта проблема, и всесторонние описания, предложенные в этом, помогли мне решить ее.
Вторая заявленная проблема была моей проблемой. Я использовал сторонний репозиторий, который я только что добавил, он выполняет
repository
роль файла pom в моем проекте. Я добавляю ту же информацию хранилища,pluginrepository
чтобы решить эту проблему.источник
У меня была похожая ошибка с другим артефактом.
Ни одно из описанных выше решений не помогло мне. Я наконец решил это в IntelliJ IDEA, выбрав File> Invalidate Caches / Restart ...> Invalidate and Restart .
источник
В моем случае у меня было несколько проектов
Когда я выполнял «mvn clean install» из каталога «domainProject», я получал указанную ошибку.
Когда я сделал «mvn clean install» из каталога «projectRoot», проблема исчезла.
источник