Maven: хранилище больше не существует!Что теперь? - PullRequest
3 голосов
/ 27 декабря 2010

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

Насколько я понимаю, мне нужно указать Maven на репозиторий, из которого он может получать различныеPOMs найдены в моих зависимостях.Другими словами, вместо того, чтобы загружать все зависимости в моей папке lib, как я делал это в эпоху муравьев, мне теперь нужно изучить различные репозитории Maven и, надеюсь, найти то, что мне нужно.

ОК, спасибо MVNBrowser все становится немного проще.Но! Что если хранилище Maven больше не существует?

Например, я использую Slick в своем проекте.Среди других зависимостей, Slick использует JNLP (по некоторым причинам).Артефакт для jnlp:

    <dependency>
        <groupId>javax.jnlp</groupId>
        <artifactId>jnlp</artifactId>
        <version>1.2</version>
    </dependency>

Согласно MVNBrowser , javax.jnlp можно найти только в одном хранилище, Freehep.Который больше не доступен.

И что теперь?

1 Ответ

2 голосов
/ 27 декабря 2010

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

<repositories>
    <repository>
      <id>java.net</id>
        <url>http://download.java.net/maven/2</url>
    </repository>
</repositories>

, где вам придется заменить идентификатор и URL-адрес значениями для нового репо.

Альтернативно maven на самом деле сначала проверяет ваш локальный репозиторий, чтобы увидеть, есть ли пакет там (обычно находится в папке $ HOME / .m2 / ), так что если у вас есть файл jar, то вы можете установить его с

mvn install:install-file -DgroupId=javax.jnlp -DartifactId=jnlp \ -Dversion=1.2 -Dpackaging=jar -Dfile=/path/to/jnlp-1.2.jar

Также обратите внимание, что mvnbrowser.com не отслеживает контент из всех репозиториев maven, а официальные репозитории Spring, Sun (Oracle) и JBoss (Redhat) приносят наиболее заметные упущения. Таким образом, проблемы, которые вы описываете, на самом деле встречаются довольно часто (например, при установке драйвера Oracle JDBC), требуя от вас поиска других репозиториев или добавления Jar-файла в свой.

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