Как установить порядок репозиториев в Maven settings.xml
У меня есть 3 репозитория в моих settings.xml, потому что мне нужны артефакты из всех них. Всякий раз, когда зависимость не найдена, Maven пытается
Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://some.server/mvn2repo/3rdParty/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.9.1/lucene-core-2.9.1.pom
<success>
все репозитории, но большую часть времени он находит артефакт в центральном (repo1), конечно. Я хочу, чтобы Maven сначала проверил это репо. Я пробовал порядок объявлений в settings.xml, но не работал. Согласно fgysin, я также попробовал обратный порядок, который ничего не менял.
Моя версия Maven:
C:\>mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_15
Java home: C:\Program Files\Java\jdk1.6.0_15\jre
Default locale: de_AT, platform encoding: Cp1252
OS name: "windows vista" version: "6.0" arch: "amd64" Family: "windows"
Мой settings.xml
<profiles>
<profile>
<id>space</id>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>s1-releases</id>
<name>System One Releases</name>
<url>http://some.server/mvn2repo/releases</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>s1-3rdParty</id>
<name>System One 3rd Party Releases</name>
<url>http://some.server/mvn2repo/3rdParty</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>space</activeProfile>
</activeProfiles>
Ответы
Ответ 1
Насколько я знаю, порядок репозиториев в вас pom.xml также будет определять порядок доступа к репозиторию.
Что касается настройки repos в settings.xml, я прочитал, что порядок репозиториев достаточно интересен для обратного порядка доступа к репозиториям.
Вот сообщение, где кто-то объясняет это любопытство:
http://community.jboss.org/message/576851
Ответ 2
Ни один из этих ответов не был правильным в моем случае.. порядок кажется зависимым от алфавитного упорядочения <id> тег, который является произвольной строкой. Следовательно, этот принудительный порядок поиска репо:
<repository>
<id>1_maven.apache.org</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>true</enabled> </snapshots>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
</repository>
<repository>
<id>2_maven.oracle.com</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>false</enabled> </snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>
Ответ 3
Кроме того, рассмотрите возможность использования менеджера хранилища, такого как Nexus, и настройте там все свои репозитории.