Force maven update

Я импортировал свой рабочий проект на другой компьютер, чтобы он начал загружать зависимости.

Видимо, в то время мое интернет-соединение оборвалось. Теперь я получаю:

Ошибки сборки для комиксов; org.apache.maven.lifecycle.LifecycleExecutionException: не удалось выполнить цель для проекта comicsTest: не удалось разрешить зависимости для проекта comicsTest:comicsTest:war:0.0.1-SNAPSHOT: не удалось разрешить следующие артефакты: org.springframework:spring- контекст:jar:3.0.5.RELEASE, org.hibernate:hibernate-entitymanager:jar:3.6.0.Final, org.hibernate:hibernate-core:jar:3.6.0.Final, org.hibernate:hibernate-commons- аннотации: jar: 3.2.0.Final, org.aspectj: aspectjweaver: jar: 1.6.8, commons-lang: commons-lang: jar: 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 from central ( http://repo1.maven.org/maven2): Ответ не получен после 60000

И я понятия не имею, как заставить Maven для обновления?

27 ответов

Решение
mvn clean install -U

-U означает принудительное обновление зависимостей снимка. Зависимости релиза не могут быть обновлены таким образом.

Если ваш локальный репозиторий каким-то образом испорчен для выпуска jars, а не для снимков (-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

-У, похоже, заставить обновление всех зависимостей. Если вы хотите обновить отдельную зависимость без чистой или -U, вы можете просто удалить ее из локального репозитория и затем собрать. Пример ниже для обновления slf4j-api 1.7.1-SNAPSHOT:

rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile

Все ответы здесь не сработали для меня. Я использовал метод молотка:

find ~/.m2/ -name "*.lastUpdated" | xargs rm

Это решило проблему:-)

На тот случай, если кто-то хочет только обновить зависимости снимка проекта и не хочет устанавливать артефакт:

mvn dependency:resolve -U

Не забудьте повторно импортировать зависимости в вашей IDE. В IDEA вам нужно щелкнуть правой кнопкой мыши по файлу pom и выбрать Maven -> Reimport

Вы можете сделать эффективно из Eclipse IDE, Конечно, если вы используете его.

Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases

Если вы не уверены, что находится внутри вашего локального репозитория, я рекомендую запустить сборку с опцией:

-Dmaven.repo.local=localrepo

Таким образом, вы гарантированно создадите условия для чистых помещений.

В моем случае сначала я сделал
mvn clean install -U
все еще это показывало ту же самую ошибку, тогда я закрыл проект, и agian вновь открыл это. Наконец работал.

Я использовал IntelliJ IDE, и у меня была аналогичная проблема, и для ее решения я щелкнул "Создать источники и обновить папки для всех проектов" на вкладке Maven.

Если вы используете eclipse IDE, то:

  • Выберите проект.
  • Нажмите Alt+F5, появится окно для обновления проекта Maven.

  • Проверьте - Принудительное обновление снимков / выпусков и нажмите ОК.

Предыдущие версии maven не вызывали принудительную проверку отсутствующих выпусков при использовании -U с mvn clean install, только снимки состояния, хотя более новая версия поддерживает это.

Для тех, кто все еще борется с предыдущей версией, может быть полезно следующее:

В Windows:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

В Linux:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

Всякий раз, когда maven не может загрузить зависимости по какой-либо причине (подключение / не существует и т. Д.), Он добавит ".error=Could not transfer artifact" в файл dependency-name.lastUpdate в соответствующей папке в каталоге $home/.m2. Удаление этих файлов заставит maven снова попытаться получить зависимости.

      mvn clean install -e -U -Dmaven.test.skip=true
  1. -eПодробное исключение
  2. -Uпринудительное обновление
  3. -DskipTestsне выполняет тестовые случаи, но компилирует классы тестовых случаев для создания соответствующих файлов классов в целевых/тестовых классах.
  4. -Dmaven.test.skip=true, не выполняйте тестовые примеры и не компилируйте классы тестовых случаев. Использование maven. тест.skip не только пропускает запуск модульных тестов, но и пропускает компиляцию тестового кода.

Небольшое предложение. Если вы используете компилятор IntelliJ Idea, рекомендуется очистить кеш

Вам необходимо проверить файл settings.xml в разделе <maven_home>/conf каталог.

Это одна из самых раздражающих вещей в Maven. Для меня происходит следующее: если я добавляю зависимость, запрашивающую больше зависимостей и все больше и больше, но использую медленное соединение, она перестает работать во время загрузки и тайм-аута. Во время ожидания все зависимости, которые еще не получены, помечаются заполнителями в кеше.m2, и Maven не будет (никогда) поднимать их, пока я не удалю запись заполнителя из кэша (как указано), удалив ее.

Насколько я понимаю, в Maven или, точнее, в плагине Eclipse Maven есть ошибка, связанная с этим. Кто-то должен сообщить об этом.

У меня ошибка в другом контексте. Таким образом, мое решение может быть полезным для тех, кто сталкивается с вопросом:

Проблема: я скопировал локальный репозиторий на другой компьютер, который не имеет связи со специальным репозиторием. Поэтому Maven попытался проверить артефакты на предмет неверного хранилища.

Мое решение: удалить файлы _maven.repositories.

-U используется для принудительного обновления Maven Repo. использование

mvn -U clean install

Важно добавить, что главное отличие бега mvn с -U и без -U в том, что -U переопределит ваши локальные банки SNAPSHOT удаленными банками SNAPSHOT.

Локальные банки SNAPSHOT, созданные из местных mvn install в тех случаях, когда у вас есть другие модули вашего проекта, которые генерируют банки.

У меня та же ошибка с зависимостью android-maps-utils. Использование пакета типа aar в разделе зависимостей решит мою проблему. По умолчанию типом является 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 clean install -U, Это решило мою проблему.

Maven выполняет загрузку всех зависимостей вашего проекта в локальное хранилище (папка.m2). Из-за интернет-проблем с вашим локальным репо ваш проект сталкивается с проблемами. Я не уверен, поможет ли это вам наверняка или нет, но вы можете попробовать удалить все файлы в папке хранилища внутри папки.m2. Поскольку в локальном репо ничего не будет, maven будет вынужден снова загрузить зависимости, что приведет к обновлению. Как правило, папка.m2 находится по адресу c:users:[username]:.m2

после использования mvn clean install -U запустите также тест maven, и после этого обновите свой проект, используя проект maven-update, это работает в моем случае

У меня была эта проблема по другой причине. Я пошел в репозиторий maven https://mvnrepository.com/ поисках последней версии ядра core, которая в то время была 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 -fae install

Мы можем принудительно получить последнее обновление релиза и репозитория моментальных снимков с помощью следующей команды:

mvn --update-snapshots clean install

У меня была такая же ошибка и работает mvn install -U а затем работает mvn install работал на меня.

mvn clean install -U не работает тем не мение mvn -U clean с последующим mvn clean install делает.

Другие вопросы по тегам