Ошибка Maven при разрешении зависимости - PullRequest
6 голосов
/ 21 января 2012

Я новичок в Maven и пытаюсь настроить один из моих первых POM s. Мое приложение будет кешировать с помощью EhCache. Переходя к Maven Central Repo (ссылка здесь ), я скопировал и вставил тег <dependency> и скопировал его в мой pom.xml, например:

...many dependencies above this point
<dependency>
    <scope>compile</scope>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.0.1.Final</version>
</dependency>
<dependency>
    <scope>compile</scope>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.5.0</version>
</dependency>
<dependency>
    <scope>compile</scope>
    <groupId>jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>3.5.3</version>
</dependency>
...many dependencies below this point

Когда я сохраняю изменения, Eclipse создает рабочее пространство и выдает ошибку при открытии тега <dependency> для EhCache 2.5:

Отсутствует артефакт net.sf.ehcache: ehcache: jar: 2.5.0

Итак, я подумал, что, возможно, v.2.5.0 что-то не так и повторил то же самое для 2.4.7 (последний релиз 2.4.x перед 2.5.0). То же самое дело.

Поскольку я новичок в Maven, я даже не знаю, с чего начать. Я попробовал Project >> Clean и даже перезапустил Eclipse, чтобы увидеть, был ли это просто типичный "причуды" Eclipse. Нет.

Я думаю:

  • Может ли EhCache публиковать плохие JAR-файлы в репозитории Maven?
  • Может ли в Maven Repo что-то не так?
  • Может ли это быть из-за чего-то неправильно настроенного в моем pom.xml?
  • Может ли это быть проблемой " JAR hell ", когда у меня возник конфликт где-то на моем графике зависимостей?

Как бы ТАК занялся этой проблемой? Заранее спасибо!

Ответы [ 3 ]

8 голосов
/ 21 января 2012

Обычно безопаснее обращаться к search.maven.org .Зависимость оттуда:

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.5.0</version>
    <type>pom</type>
</dependency>

Тип разума пом.Из модуля pom:

Это артефакт pom для добавления в ядро ​​ehcache и ehcache-terracotta для кластеризации.Удостоверьтесь, что для вашей зависимости в типе 'type' установлено значение 'pom'.

Очевидно, что когда кому-то не нужна терракота, ehcache-core будет отлично работать, как и другие состояния ответа.

8 голосов
/ 21 января 2012

Они используют ehcache-core в официальной документации . В Maven Central нет артефакта jar для ehcache 2.5, объясняющего ваше сообщение об ошибке.

Использование ehcache-core изменяет зависимость на:

<dependency>
  <groupId>net.sf.ehcache</groupId>
  <artifactId>ehcache-core</artifactId>
  <version>2.5.0</version>
</dependency>

Который успешно загружается на моем компьютере (ehcache нет).

0 голосов
/ 21 января 2012

Я бросил это в IntelliJ, и он нашел это. Я подозреваю, что что-то не так с вашими настройками. Попробуйте создать проект только с этой зависимостью. Если это не удается загрузить, я бы проверил ваши настройки. например .m2/settings.xml Используете ли вы сервер Nexus или прокси / кэш Maven?

Кстати: более простой способ поиска JAR - использовать http://mvnrepository.com/, который найдет все доступные версии и покажет вам XML, который вам нужно добавить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...