maven не может найти зависимости [dependencyResolutionException]

В моем pom.xml я имею

    <repositories>
        <repository>
            <id>rep</id>
            <name>Repository</name>
            <url>http://artifacts.com/rep</url>
            <releases>
               <enabled>true</enabled>
               <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>com.project.rest</groupId>
            <artifactId>common</artifactId>
            <version>2.0.5</version>
        </dependency>

    </dependencies>

И у меня есть эта ошибка

Downloading: http://artifacts.com/rep/com/project/rest/common/2.0.5/common-2.0.5.pom
[WARNING] The POM for com.project.rest:common:jar:2.0.5 is missing, no dependency information available

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.154s
[INFO] Finished at: Tue Feb 03 06:58:35 BRT 2015
[INFO] Final Memory: 9M/152M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project server: Could not resolve dependencies for project org.server:
server:jar:2.5.1-SNAPSHOT: The following artifacts could not be resolved: com.project.rest:common:jar:2.0.5:
Could not find artifact com.project.rest:common:jar:2.0.5 in rep (http://artifacts.com/rep) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

PS Я спрятал все настоящие URL и пакеты.

В основном это показывает, что он может скачать .pom но также он отображает предупреждение.

В чем проблема?

6 ответов

Убедитесь, что ваш репозиторий настроен правильно. Попробуйте найти в своем репо com.project.rest:common версии 2.0.5,

Это ваш собственный проект? какую банку вы построили? Вы уверены, что развернули его в своем репо? если его нет в вашем репо, попробуйте найти его в вашем локальном репо (обычно .m2 / repository/ com / project...)

В первой строке "Загрузка:..." только говорится, что maven пытается загрузить артефакт. Это не утверждение об успехе. Если Maven успешен, вы получите другую строку, начинающуюся с "Downloaded:..."

Таким образом, в вашем случае Maven не смог загрузить файл. Проверьте зарегистрированный URL в вашем браузере, если он существует и защищен ли он.

КСТАТИ <updatePolicy>always</updatePolicy> довольно редко для репозиториев релизов, потому что релизы больше не должны меняться.

DependencyResolutionException

(источник: Maven Confluence)

Эта ошибка обычно возникает, когда Maven не может загрузить зависимости. Возможные причины этой ошибки:

  1. POM пропускает декларацию <repository> где находится артефакт.
  2. Для настроенного хранилища требуется проверка подлинности, и Maven не смог предоставить правильные учетные данные серверу. В этом случае убедитесь, что ваш ${user.home}/.m2/settings.xml содержит <server> декларация которого <id> соответствует <id> удаленного хранилища для использования. См. Справочник настроек Maven для более подробной информации.
  3. Рассматриваемый удаленный репозиторий использует SSL, а JVM, на которой работает Maven, не доверяет сертификату сервера.
  4. Существует общая проблема с сетью, которая препятствует доступу Maven к любому удаленному репозиторию, например, к отсутствующей конфигурации прокси.
  5. Вы настроили Maven для строгой проверки контрольной суммы, и загружаемые файлы были повреждены.
  6. Maven не удалось сохранить файлы в вашем локальном хранилище, см. LocalRepositoryNotAccessibleException Больше подробностей.
  7. В Maven 3, если вы только что потерпели неудачную загрузку и исправили ее (например, загрузив jar-файл в репозиторий), он будет кешировать ошибку. Для принудительного обновления добавить -U в командной строке.

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

Если вы используете IntelliJ IDE (Jetbrains) и код правильный, тогда

Нажмите кнопку ПЕРЕКЛЮЧИТЬ АВТОНОМНЫЙ РЕЖИМ. Если мы включим автономный режим, то IDE не позволит maven загрузить зависимость и не сможет найти библиотеку, которая вызывает ошибку.

Поэтому убедитесь, что ваш проект построен в режиме ONLINE.

Проект, который вы упомянули, не содержит POM, то есть это не проект MAVEN. Репозиторий.m2(посмотрите на диск c или там, где вы его установили) содержит все папки зависимостей, где он находится, содержит ли он требуемый проект или нет, т.е. com.project.rest.

Как и предлагается в выводе консоли, вы можете проверить страницу Maven Wiki ( http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException) для получения дополнительной информации о том, где может лежать проблема.

Учитывая предоставленную вами информацию. Я предполагаю, что мы смотрим на одну проблему:POM пропускает объявление, на котором размещен артефакт.

Репозитории Maven бывают трех типов: локальные, центральные и удаленные.

В вашем случае ваш локальный репозиторий содержит специфические для проекта артефакты, а центральный репозиторий - нет.

  1. Локальный репозиторий находится на вашем локальном компьютере. Когда вы запускаете сборку Maven, Maven автоматически загружает все jar-файлы зависимостей в локальный репозиторий.
  2. Центральный репозиторий - это веб-репозиторий, предоставляемый сообществом, и он содержит ряд часто используемых библиотек, которые можно найти здесь https://repo1.maven.org/maven2/.
  3. Удаленный репозиторий - это собственный настраиваемый репозиторий разработчика, содержащий необходимые библиотеки или другие jar-файлы проекта. Разработчик определяет эти репозитории в файле POM с помощью тегов.

Я бы посоветовал следующее:

  • проверьте тег вашего репозитория, если репозиторий правильный
  • проверьте, содержит ли репозиторий артефакты, указанные в вашем теге зависимости
Другие вопросы по тегам