Я пытаюсь добавить репозитории Maven mvnrepository.com
, но мне кажется, что я не делаю этого.
<repository>
<id>mvnrepository</id>
<url>http://mvnrepository.com/artifact/</url>
</repository>
Я могу ясно видеть, что артефакт, который я ищу, есть http://mvnrepository.com/artifact/org.springframework.ldap/spring-ldap/1.3.1.RELEASE
Но мой выпуск сборки maven сообщает мне, что он не
Скачивание: http://mvnrepository.com/artifact//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс 'org. springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE 'в репозитории mvnrepository (http://mvnrepository.com/artifact/)
Что я делаю не так? Как я могу загрузить артефакт весны ldap?
ОБНОВЛЕНИЕ Я пробовал несколько артефактов, но все они терпят неудачу
Скачивание: http://repo1.maven.org/maven2//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс ' org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE 'в репозитории maven central repo (http://repo1.maven.org/maven2/) Скачивание: http://download.java.net/maven/2//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс 'org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE 'в репозитории java.net repo (http://download.java.net/maven/2/) Скачивание: http://maven.springframework.org/external//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс 'org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE' в репозитории весны external (http://maven.springframework.org/external/) Скачивание: http://search.maven.org//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3. 1.RELEASE.jar [INFO] Невозможно найти ресурс 'org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE' в репозитории repo.jenkins-ci.org(http://search.maven.org/) Скачивание: https://репозиторий. jboss.org//org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE 'в репозитории mvnrepository (https://repository.jboss.org/) Скачивание: http://repo1.maven.org/maven2//org/springframework/ldap/spring-ldap/1.3. 1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс 'org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE' в центральном репозитории (http://repo1.maven.org/maven2/)
Если я не определяю какие-либо репозитории в settings.xml, тогда ответ будет следующим:
Скачивание: http://repo1.maven.org/maven2/org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1.RELEASE.jar [INFO] Невозможно найти ресурс 'org.springframework.ldap: spring-ldap: jar: 1.3.1.RELEASE 'в центральном хранилище (http://repo1.maven.org/maven2)
UPDATE Кроме того, я использую gradle в других проектах, и это работает без проблем
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile 'org.springframework.ldap:spring-ldap:1.3.1.RELEASE'
}
Поэтому я уверен, что есть некоторые maven-репо, о которых я не знаю
Артефакт spring-ldap - тип pom. Чтобы указать любой артефакт, отличный от jar, вам нужно указать тип. Итак, артефакт, который вам нужно указать в вашем помпе
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
<type>pom</type>
</dependency>
Надеюсь это поможет
<type>pom</type>
. Работает отлично. Извините еще раз.
Как упоминалось в @techbost, maven не может разрешить spring-ldap-1.3.1.RELEASE.jar из любого репозитория, потому что такой банкой не существует.
Посмотрим, что происходит. Вы определяете свою зависимость следующим образом:
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
Если вы не укажете тег type
, тип по умолчанию - jar
. Это означает, что Maven пытается ударить по этому URL-адресу, чтобы получить файл: http://repo1.maven.org/maven2/org/springframework/ldap/spring-ldap/1.3.1.RELEASE/spring-ldap-1.3.1. RELEASE.jar
Как видите, этот файл не существует. Это связано с тем, что модуль spring-ldap
не имеет банку, это модуль упаковки pom
, что означает, что он имеет только файл pom, который имеет общую конфигурацию для подмодулей и определение этих подмодулей.
Затем вы можете определить тип, который будет pom
:
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
<type>pom</type>
</dependency>
Можно подумать, что это должно сработать, потому что теперь вы инструктируете maven загружать файл pom, который существует: http://repo1.maven.org/maven2/org/springframework/ldap/spring-ldap/1.3.1.RELEASE/весна-1.3.1.RELEASE.pom LDAP
Ну, это не сработает. Это потому, что артефакт pom
не является реальной зависимостью (только для напоминаний - зависимости - это файлы, которые добавлены в ваш путь к классам для компиляции, тестирования и упаковки, поэтому нет смысла иметь файл pom в classpath).
То, что вам действительно нужно, является одним из двух:
spring-ldap-core
.all
classifer модуля spring-ldap
. В этом случае вы принесете все модули в одной банке. Хотя это может облегчить вашу конфигурацию, оно сильно обескураживает частицу.В первом случае ваше выражение о зависимости будет выглядеть так:
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
Это работает.
В следующем случае ваше выражение о зависимости будет следующим:
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
<classifier>all</classifier>
</dependency>
Это тоже работает, хотя это действительно плохая идея.
Сайт PS mvnrepository не является реальным хранилищем maven. Это сайт для поиска и просмотра артефактов в maven-central и использовался, когда у maven central не было поиска.
Я могу предложить два репозитория:
jcenter
- надмножество Maven Central, https по умолчанию, веб-идентификация издателей, более богатый пользовательский интерфейс и т.д. Более подробную информацию см. на странице https://bintray.com/bintray/jcenter (кнопка Set me up
даст вам инструкции о том, как использовать это с Maven)Я не думаю, что вам нужно добавить дополнительный тег репозитория для извлечения артефакта spring-ldap.
Вам нужно указать репозиторий только тогда, когда артефакт не относится к репозиторию maven по умолчанию, например, Jboss Repository https://repository.jboss.org/, вам нужно добавить это в свой pom для получения любого артефакта этого репозитория,
вы просто добавляете ниже зависимость в своем пом, и она должна работать.
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
У вас возникли проблемы с загрузкой артефакта без указания репозитория?