Ответ 1
mvn clean install -U
-U
означает принудительное обновление зависимостей моментальных снимков. Релиз-зависимости не могут быть обновлены таким образом.
Я импортировал свой рабочий проект на другой компьютер, чтобы он начал загружать зависимости.
По-видимому, в то же время мое интернет-соединение разбилось. Теперь я получаю:
Построить ошибки для комиксов; org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель в проекте comicsTest: не удалось разрешить зависимости для проекта comicsTest: comicsTest: war: 0.0.1-SNAPSHOT: Не удалось разрешить следующие артефакты: org.springframework: spring -context: баночка: 3.0.5.RELEASE, org.hibernate: спящий режим-EntityManager: баночка: 3.6.0.Final, org.hibernate: спящий режим жилы: баночка: 3.6.0.Final, org.hibernate: спящий-Обще-аннотации: баночка: 3.2.0.Final, org.aspectj: aspectjweaver: баночка: 1.6.8, Обще-языки: обыкновенные-языки: баночка: 2.5,
mysql: mysql-connector-java: jar: 5.1.13: Не удалось передать org.springframework: spring -context: jar: 3.0.5.RELEASE из http://repo1.maven.org/maven2 был кэширован в локальном репозитории, разрешение не будет повторно загружено до тех пор, пока интервал обновления центрального элемента не истечет или не будет принудительно обновлено.
Исходная ошибка: Не удалось передать артефакт org.springframework: spring -context: jar: 3.0.5.RELEASE из центрального (http://repo1.maven.org/maven2): ответа не получено после 60000
И я понятия не имею, как заставить maven обновить?
mvn clean install -U
-U
означает принудительное обновление зависимостей моментальных снимков. Релиз-зависимости не могут быть обновлены таким образом.
-U
кажется, заставляет обновлять все зависимости.
Если вы хотите обновить отдельную зависимость без очистки или -U
вы можете просто удалить ее из локального репозитория и затем собрать.
Пример ниже для обновления slf4j-api 1.7.1-SNAPSHOT
:
rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
Если ваш локальный репозиторий каким-то образом отключен для выпускных банок, а не моментальных снимков (-U
и --update-snapshots
обновляет только моментальные снимки), вы можете очистить локальное репо, используя следующее:
mvn dependency:purge-local-repository
Вероятно, вы захотите снова очистить и установить:
mvn dependency:purge-local-repository clean install
Больше информации доступно на https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
Все ответы здесь не помогли мне. Я использовал метод молотка:
find ~/.m2/ -name "*.lastUpdated" | xargs rm
Это устранило проблему:-)
Эффект можно эффективно выполнять с Eclipse IDE
. Конечно, если вы используете его.
Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
На всякий случай кто-то хочет только обновить моментальные снимки проекта и не хочет устанавливать артефакт:
mvn dependency:resolve -U
Не забывайте о зависимостях reimport в вашей среде IDE. В IDEA вам нужно щелкнуть правой кнопкой мыши по файлу pom и выбрать Maven → Reimport
Если вы не знаете, что находится в вашем локальном репозитории, я рекомендую запустить сборку с помощью опции:
-Dmaven.repo.local=localrepo
Таким образом, вы обеспечите создание чистой среды.
В моем случае сначала я сделал:
mvn clean install -U
Тем не менее он показывал ту же ошибку, после чего я закрыл проект и снова открыл его. Наконец-то сработало.
Если вы используете Eclipse IDE, тогда:
Нажмите Alt + F5, появится окно для обновления проекта Maven.
Проверьте - принудительное обновление снимков/выпусков и нажмите кнопку ОК.
При использовании Intellij IDE
У меня ошибка в другом контексте. Поэтому мое решение может быть полезно для других, которые нападают на вопрос:
Проблема: Я скопировал локальный репозиторий на другой компьютер, который не имеет никакого подключения к специальному репозиторию. Итак, maven попытался проверить артефакты против недопустимого репозитория.
Мое решение: Удалите файлы _maven.repositories.
Это одна из самых неприятных вещей в Maven. Для меня происходит следующее: если я добавляю зависимость, запрашивающую больше зависимостей и все больше и больше, но имею медленное соединение, она швы останавливается во время загрузки и выключения времени. В то время как выбор времени для всех зависимостей, еще не выбранных, помечены владельцами мест в кэше .m2, и Maven не будет (никогда) не забрать его, если я не удалю запись владельца места из кеша (как указано другим), удалив ее.
Итак, насколько я вижу, Maven или более точный плагин Eclipse Maven имеет ошибку в этом отношении. Кто-то должен сообщить об этом.
Вам нужно проверить файл settings.xml в каталоге <maven_home>/conf
.
У меня такая же ошибка с зависимостью android-maps-utils. Использование пакета aar type в разделе зависимости разрешает мою проблему. По умолчанию тип jar, поэтому можно проверить, какой тип зависимости загружается в репозиторий.
Для исправления этой проблемы из Eclipse:
1) Добавьте зависимость ниже в Maven pom.xml и сохраните файл pom.xml.
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.3.1</version>
</dependency>
2) Перейти к проекту → Maven → Обновить проект
выберите проект и нажмите "ОК".
3) Необязательный шаг, если он не разрешен до шага 2, то выполните шаг ниже, выполнив шаг-1
Перейти к проекту → Maven → Обновить проект → установите флажок "Принудительное обновление снимков/выпусков"
выберите проект и нажмите "ОК".
Важно добавить, что основное отличие работы mvn
с -U и без -U заключается в том, что -U
переопределит ваши локальные банки SNAPSHOT с помощью удаленного Банки SNAPSHOT.
Локальные баннеры SNAPSHOT, созданные из локального mvn install
, в случаях, когда у вас есть другие модули вашего proj, которые генерируют банки.
-U используется для принудительного обновления maven Repo. использование
mvn -U clean install
Я попробовал все ответы здесь, но ничего не получалось. Сначала перезагрузил мой компьютер, затем запустил mvn clean install -U
. Это решило мою проблему.
Maven выполняет загрузку всех зависимостей вашего проекта в локальный репозиторий (папка .m2). Из-за интернет-проблем с вашим локальным репо ваш проект сталкивается с проблемами. Я не уверен, поможет ли это вам наверняка или нет, но вы можете попробовать удалить все файлы в папке хранилища внутри папки .m2. Поскольку в локальном репо ничего не будет, maven будет вынужден снова загрузить зависимости, что приведет к обновлению. Как правило, папка .m2 находится по адресу c: users: [username] :. m2
У меня была эта проблема по другой причине. Я отправился в репозиторий maven https://mvnrepository.com, ища последнюю версию ядра spring, которая в то время была 5.0.0.M3/Репозиторий показал мне эту запись для моего pom.xml:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.0.M3</version>
</dependency>
Наивный дурак, которым я являюсь, я предположил, что в комментарии говорилось, что банка находится в репозитории по умолчанию.
Однако после многого избиения я увидел заметку чуть ниже xml, в которой говорилось: "Примечание: этот артефакт находится в публичном репозитории Alfresco ( https://artifacts.alfresco.com/nexus/content/repositories/public/)"
Таким образом, комментарий в XML полностью вводит в заблуждение. Ящик находится в другом архиве, поэтому Maven не смог его найти!
Мы можем заставить последнее обновление релиза и репозитория снимков с помощью следующей команды:
mvn --update-snapshots clean install
У меня была такая же ошибка и запущена mvn install -U
, а затем работает mvn install
.
Я столкнулся с этим в последнее время и выполнил следующие исправления всех проблем
mvn -fae install
mvn clean install -U
не работает. Однако mvn -U clean
, за которым следует mvn clean install
.