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 работал отлично