2011-06-30 24 views
5

me gustaría configurar mi acumulación de tal manera que automáticamente intenta descargar un artefacto de experta en el centro si y sólo si nuestro servidor nexo es inalcanzable. Tengo lo siguiente en settings.xml y no estoy seguro de cómo cambiarlo (si es posible).¿Cómo configuro maven para acceder a maven central si el servidor nexus está inactivo?

<profiles> 
<profile> 
<id>nexus</id> 
<!--Enable snapshots for the built in central repo to direct --> 
<!--all requests to nexus via the mirror --> 
<repositories> 
    <repository> 
    <id>central</id> 
    <url>http://mynexus</url> 
    <releases><enabled>true</enabled></releases> 
    <snapshots><enabled>true</enabled></snapshots> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
    <id>central</id> 
    <url>http://mynexus</url> 
    <releases><enabled>true</enabled></releases> 
    <snapshots><enabled>true</enabled></snapshots> 
    </pluginRepository> 
</pluginRepositories> 
</profile> 
</profiles> 

<activeProfiles> 
    <activeProfile>nexus</activeProfile> 
</activeProfiles> 

Respuesta

2

Con el fin de utilizar un gestor de repositorios (Nexus incluido) es necesario tener un elemento mirrorOf * definido que interceptará todas las URLs de repositorio y enviarlos a Nexus para su resolución. En Maven2 y 3, el elemento mirrorOf no se puede configurar en un perfil. Esto significa que no hay una manera fácil de ir y venir sin cambiar la configuración.

Se podría crear un comentario en la sección de espejos y luego desactivar el perfil Nexus tener Maven regresan a su estado normal.

Pero, afortunadamente Nexus es muy estable y que nunca debe ir hacia abajo.

+0

1. Además, por "inalcanzable" creo que quiere decir "cuando estás fuera de la oficina y no tienes VPN". – carlspring

+0

Gracias, pero en realidad por inalcanzable, quise decir algo más catastrófico, como un problema de red en el nodo que aloja el servidor Nexus. Esperaba una conmutación por error automatizada a Maven Central en ese caso para no interrumpir las compilaciones mientras se diagnostica el problema del nexo. –

+1

Suena bien en teoría, pero en realidad no va a ayudar y he aquí por qué: Por lo general el Nexus es de proxies mucho más que simplemente central, incluyendo los repositorios de liberación interna. Puede influir en la forma en que Nexus localiza los artefactos ordenando en la configuración del grupo y también mediante reglas de enrutamiento. Si de repente deja todo eso fuera de la imagen, en el mejor de los casos, sus desarrolladores obtendrán resultados diferentes, lo más probable es que muchas de las cosas no se encuentren y se produzcan fallas en la compilación. –

Cuestiones relacionadas