#java #gradle
Вопрос:
Итак, я создаю проект gradle, вот мой (упрощенный) сценарий сборки:
buildscript {
repositories {
maven { url "https://repo1.maven.org/maven2/" }
maven { url 'https://repo.spring.io/plugins-release-local/' }
}
dependencies {
classpath 'org.springframework.build.gradle:docbook-reference-plugin:0.2.4'
}
}
Это приводит меня к ошибке:
> Could not find org.apache.xerces:xercesImpl:2.9.1.
Searched in the following locations:
- https://repo1.maven.org/maven2/org/apache/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
- https://repo.spring.io/plugins-release-local/org/apache/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
Required by:
project : > org.springframework.build.gradle:docbook-reference-plugin:0.2.4
Очевидно, docbook требует xerces в качестве зависимости.
Поэтому я искал ксеркса в репозитории maven, нашел ксеркса не в org/apache/xerces/
, а в xerces/
!!! (втф!?) (см. https://repo1.maven.org/maven2/xerces/xercesImpl/2.9.1/)
Итак, как я должен сообщить gradle, что при поиске xerces для docbook он должен перейти на xerces/
вместо org/apache/xerces/
?
Ответ №1:
Согласно странице Github для этого плагина, похоже, что правильный репозиторий:
repositories {
maven { url 'http://repo.spring.io/plugins-release' }
}
И действительно, в нем содержится артефакт
Предыдущий ответ
Попробуйте добавить mavenCentral()
в список репозиториев
repositories {
mavenCentral()
maven { url "https://repo1.maven.org/maven2/" }
maven { url 'https://repo.spring.io/plugins-release-local/' }
}
Комментарии:
1. Все еще ошибка. gradle все еще пытается найти xerces в MavenCentral() с
org/apache/xerces
помощью вместоxerces
2. > Не удалось найти org.apache.xerces:xercesImpl:2.9.1. Поиск выполнен в следующих местах: — > repo.maven.apache.org/maven2/org/apache/xerces/xercesImpl/2.9.1/… — repo1.maven.org/maven2/org/apache/xerces/xercesImpl/2.9.1/… — repo.spring.io/plugins-release-local/org/apache/xerces/…
Ответ №2:
Попробуйте расширить свой набор репозиториев с помощью
mavenLocal()
mavenCentral()
Определение URL-адресов репозиториев не требуется, за исключением случаев, когда вы находитесь в корпоративной среде, где доступ в Интернет ограничен.