2011-03-08 13 views
14

Por alguna razón no puedo conseguir Nexus para servir a mis artefactos captura de pantalla por el grupo público predeterminado. He leído el bit relevante del manual de Nexus y busco en Google, pero parece que nada de lo que hago funciona.Nexus Wont Servir instantáneas de Grupo predeterminado Pública

he aplicado el material en la sección 4.2. (Configuring Maven to Use a Single Nexus Group) del manual, por lo que mi settings.xml parece:

<settings> 

    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://my-server/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 

    <profiles> 
    <profile> 
     <id>nexus</id> 
     <activation> 
     <activeByDefault>true</activeByDefault> 
     </activation> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases> 
      <enabled>true</enabled> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases> 
      <enabled>true</enabled> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 

</settings> 

Todo estaba funcionando bien hasta que empecé a construir cosas en una máquina limpia (es decir, uno que no había construido ninguno de los proyectos instantánea en) y no descargaría las dependencias SNAPSHOT requeridas.

[INFO] Scanning for projects... 
[INFO]  
[INFO] ------------------------------------------------------------------------ 
[INFO] Building MyCo Actions Base Classes 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
Downloading: http://my-sever/nexus/content/groups/public/com/myco/testing/1.0.0-SNAPSHOT/maven-metadata.xml 
Downloading: http://my-sever/nexus/content/groups/public/com/myco/testing/1.0.0-SNAPSHOT/maven-metadata.xml 
Downloading: http://my-sever/nexus/content/groups/public/com/myco/testing/1.0.0-SNAPSHOT/testing-1.0.0-SNAPSHOT.pom 
[WARNING] The POM for com.myco:testing:jar:1.0.0-SNAPSHOT is missing, no dependency information available 
Downloading: http://my-sever/nexus/content/groups/public/com/myco/testing/1.0.0-SNAPSHOT/testing-1.0.0-SNAPSHOT.jar 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.023s 
[INFO] Finished at: Tue Mar 08 15:55:23 GMT 2011 
[INFO] Final Memory: 99M/480M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal on project actions-base: Could not resolve dependencies for project com.myco:actions-base:jar:1.0.0-SNAPSHOT: Could not find artifact com.myco:testing:jar:1.0.0-SNAPSHOT in nexus (http://my-sever/nexus/content/groups/public) -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 

El problema es que las pruebas-1.0.0-SNAPSHOT.jar no existe, pero la prueba-1.0.0-20110301.182820-1.jar hace: Maven me da el siguiente. ¿Cómo hago para que Nexus resuelva el SNAPSHOT correctamente y me sirva mi JAR ...?

Respuesta

7

que terminó siendo todo mi trabajo la eliminación de las emisiones locales y los registros de instantáneas del grupo de población y de difusión del espejo, único espejo del grupo público en lugar de todo. Así que mi settings.xml terminó contiene:

<profiles> 
    <profile> 
     <id>nexus</id> 
     <activation> 
     <activeByDefault>true</activeByDefault> 
     </activation> 
     <repositories> 
     <repository> 
      <id>maven-releases</id> 
      <url>http://myhost.com/nexus/content/repositories/releases</url> 
      <layout>default</layout> 
      <releases> 
      <enabled>true</enabled> 
      </releases> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>maven-snapshots</id> 
      <url>http://myhost.com/nexus/content/repositories/snapshots</url> 
      <layout>default</layout> 
      <releases> 
      <enabled>false</enabled> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
     </repository>   
     <repository> 
      <id>madeUp</id> 
      <url>http://central</url> 
      <releases> 
      <enabled>true</enabled> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <id>madeUp</id> 
      <url>http://central</url> 
      <releases> 
      <enabled>true</enabled> 
      </releases> 
      <snapshots> 
      <enabled>true</enabled> 
      </snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 

    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <mirrorOf>madeUp</mirrorOf> 
     <url>http://myhost.com/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 
1

Intenté esto también y falló. Hay una segunda descripción del problema here. Puede ser que el repositorio público de Nexus esté interfiriendo en las cosas.

que terminó la adición de un segundo depósito en señalar settings.xml a nuestro repositorio de instantánea local más directamente.

<repository> 
    <id>ummsSnaps</id> 
     <url>https://team/nexus/content/repositories/snapshots</url> 
     <snapshots> 
     <enabled>true</enabled> 
     </snapshots> 
</repository> 

Y funcionó.

0

Compruebe que se añade el repositorio de instantánea a su grupo público. Parece que has configurado el archivo settings.xml correctamente, así que debe ser que/public no contenga tu repo de instantánea.

+1

se añadió el repositorio de instantánea para el grupo público, que está ahí por defecto si no recuerdo mal. – fatboab

+0

Tengo el mismo problema. Exactamente el mismo archivo settings.xml + Public contiene esos repositorios en una secuencia: Releases Snapshots 3dParty Central. Usando OSS 2.6.3-01. Mientras navego en Público a través de la interfaz de usuario, puedo ver todos los artefactos pero maven no puede descargarlos.¿Es eso un error o un comportamiento esperado? Pensé que esa es la función del repositorio grupal – jaksky

4

El mismo problema para mí mientras nexo configure que funciona como un espejo. Después de añadir todos los repositorios (liberar & instantáneas) a la grupo repositorio público, usted puede encontrar todas las instantáneas navegando por la URL correspondiente:

Configure nexus Browser public group

Pero experto se producirá un error de todos modos para obtener las instantáneas de la espejo, como se describe en este hilo. Parece que maven no recupera instantáneas del espejo, hasta que explícitamente le dijo que lo hiciera. Como solución, he añadido la misma URL como un repositorio de -Tag y que sólo funciona como se esperaba:

<settings> 

<mirrors> 
    <mirror> 
     <id>nexus-mirror</id> 
     <name>Nexus Mirror</name> 
     <url>http://my-server/nexus/content/groups/public/</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
</mirrors> 

<profiles> 
    <profile> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <repositories> 
      <repository> 
       <id>nexus-public</id> 
       <name>Nexus Public Repository</name> 
       <url>http://my-server/nexus/content/groups/public/</url> 
       <releases> 
        <enabled>true</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
        <updatePolicy>always</updatePolicy> 
       </snapshots> 
      </repository> 
     </repositories> 
    </profile> 
</profiles> 

</settings> 

Incluso si se establece la updatePolicy -Tag a todo el espejo no tiene ningún problema. Desde maven es lo suficientemente inteligente como para actualizar las instantáneas en cada compilación, pero no las versiones.

Cuestiones relacionadas