Maven использует неправильный репозиторий для загрузки

Я использую немного более старую версию (1.5) com.sun.jersey-server/json/client, и она должна быть этой версией, поэтому, пожалуйста, не предлагайте использовать более новую версию.

В моем pom.xml я ссылаюсь на него через

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
        <type>jar</type>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <!-- version conflicts with explicit direct dependency -->
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

${jersey.version} составляет 1,5

Если я не скомпилирую его, я получаю следующие ошибки:

    [INFO] Scanning for projects...
    [INFO]------------------------------------------------------------------------
    [INFO] Building MediaAssistantWebService
    [INFO]    task-segment: [clean, install]
    [INFO]------------------------------------------------------------------------
     [...]
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    Downloading: http://repositories.dai-labor.de/extern/content/repositories/dai-open/com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom
    [INFO] Unable to find resource 'com.sun.jersey:jersey-server:pom:1.5' in repository dai-open (http://repositories.dai-labor.de/extern/content/repositories/dai-open)
    Downloading: http://download.java.net/maven/2//com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom 10K downloaded  (jersey-server-1.5.pom)
    Downloading: http://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom 185b downloaded  (jersey-project-1.5.pom)
    [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local = '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html><head><title>301' - RETRYING
    Downloading: http://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom185b downloaded  (jersey-project-1.5.pom)
    [WARNING] *** CHECKSUM FAILED - Checksum failed on download: local '6c9fd3d150b8a5f0ca676f49b8ed603793cabebb'; remote = '<html><head><title>301' - IGNORING
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Error building POM (may not be this project POM).

    Project ID: null:jersey-server:bundle:null

    Reason: Cannot find parent: com.sun.jersey:jersey-project for project: null:jersey-server:bundle:null for project null:jersey-server:bundle:null

Итак, в какое-то время, и в Интернете сказал, что я добавлю этот репозиторий к моему pom, так что maven будет там смотреть первым.

<repository>
  <id>maven2-repository.dev.java.net</id>
  <name>Java.net Repository for Maven</name>
  <url>http://download.java.net/maven/2/</url>
  <layout>default</layout>
</repository>

Но это ничего не делало. Я удалил свою папку jersy в моей папке .m2 и снова попробовал mvn clean compile, и она по-прежнему пытается загрузить, если с этого сервера glassfish-404.

Кто-нибудь знает, что мне нужно изменить, чтобы загрузить его правильно?

Ответы

Ответ 1

Попробуйте добавить репозиторий maven в центр перед другими:

<repositories>
    <repository>
        <id>maven-central</id>
        <url>http://repo1.maven.org/maven2</url>
    </repository>
    ...
</repositories>

Лучшим вариантом будет настройка сервера nexus и избавление от разделов репозитория в файлах pom: http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/

Ответ 2

Если вы посмотрите на pom, который является ссылками на трикотаж, он включает в себя некоторые репо из glassfish.org. http://download.java.net/maven/2//com/sun/jersey/jersey-server/1.5/jersey-server-1.5.pom

<repositories>
    <repository>
        <id>glassfish-repository</id>
        <name>Repository for Glassfish</name>
        <url>http://maven.glassfish.org/content/groups/glassfish</url>
    </repository>
</repositories>

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

попробуйте это в браузере: http://maven.glassfish.org/content/groups/glassfish/com/sun/jersey/jersey-project/1.5/jersey-project-1.5.pom

Я знаю, что это не решение вашей проблемы (и слишком громоздкое), но можете ли вы попробовать mvn install зависимости, необходимые для jerser-server 1.5, локально, чтобы он не пытался их загрузить?

Ответ 3

Единственное решение, которое сработало для меня, заключалось в добавлении зеркала в settings.xml для хранилища Glassfish:

<mirror>
    <id>glassfish-mirror</id>
    <name>glassfish mirror</name>
    <url>http://maven.nuxeo.org/nexus/content/repositories/public-releases</url>
    <mirrorOf>glassfish-repository</mirrorOf>
</mirror>

Как объяснено здесь

Ответ 4

Я думаю, было бы фантазией думать, что включение всех зависимостей в загрузке было бы разумным. Конечно, лучше, чтобы их скачать. Это так весело проводить часы и часы, отслеживая, какой глупый репо или ненужную банку вздутия не может быть найден! Я знаю, что я должен сражаться с большинством на этом, поскольку никто другой не смеет предлагать что-либо противнику.

Ответ 5

Просто добавьте:

<repository>
    <id>maven-central</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>

В мой POM.xml работал отлично