2011-03-16 20 views
35

Tengo 3 repositorios en mi settings.xml porque necesito artefactos de todos ellos. Siempre que no se encuentra una dependencia, Maven intentaCómo establecer el orden de los repositorios en Maven settings.xml

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> 

todos los repositorios, pero la mayoría de las veces se encuentra el artefacto en el centro (repo1) por supuesto. Quiero que Maven revise este repositorio primero. Probé el orden de las declaraciones en settings.xml, pero no funcionó. De acuerdo con fgysin También probé el orden inverso, que no cambió nada.

versión Mi 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" 

Mi 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> 
+0

voto Vamos por las siguientes cuestiones: http://jira.codehaus.org/browse/MNG-4946 y http://jira.codehaus.org/browse/MNG- 4400 –

+0

Solo elija un repositorio que funcione y 'solo' configúrelo ... – smwikipedia

+0

@HendyIrawan parece que MNG-4400 se corrigió con maven 3.0 FWIW – rogerdpack

Respuesta

21

Por lo que yo sé el orden de los repositorios en los que pom.xml también decidirá el orden del acceso al repositorio.

En cuanto a la configuración de repositorios en settings.xml He leído que el orden de los repos es interesante el orden inverso de cómo se accederá a los repositorios.

Aquí un puesto donde alguien explica esta curiosidad:
http://community.jboss.org/message/576851

+0

Tu enlace parece prometedor e intenté revertir el pedido, pero no ayuda. –

+0

Hmm, extraño. ¿Qué versión de Maven estás usando? – fgysin

+0

Maven Versión 2.2.1 como se muestra en la pregunta ... –

5

Además, considere utilizar un gestor de repositorio como Nexus y configurar todos sus repositorios allí.

+0

Claro, lo haría si pudiera ;-) –

+0

¿Por qué no puede usarlo? Si eso se debe a que no puede mantener su propio servidor, puede probar con [Artifactory Online] (https://www.jfrog.com/home/v_artifactorycloud_overview), obtendrá un repositorio de Maven en la nube que se ejecutará en minutos. – JBaruch

7

Ninguna de estas respuestas era correcta en mi caso ... el orden parece depender del orden alfabético de la etiqueta <id>, que es una cadena arbitraria. De ahí que este orden de búsqueda de recompra forzosa:

  <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> 
Cuestiones relacionadas