2010-09-03 14 views
6

Cuando construyo usando maven lo veo revisando todo tipo de repositorios extranjeros para detectar artefactos que solo mi construcción local debería producir. ¿Cómo puedo decir que el grupo com.myorg solo se puede encontrar en el repositorio local? Básicamente, quiero hacer lo que hace m2eclipse con la resolución del espacio de trabajo, pero en la línea de comandos.cómo evitar que maven verifique repositorios extranjeros?

[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from hibernate 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from hibernate 
... 

Antecedentes: Tengo un proyecto Maven jerárquica (un nivel). Quiero hacer una compilación completa, así que voy a la parte superior y hago mvn clean install.

  • com.myorg (padre)
    • pom.xml
    • com.myorg.core
      • pom.xml
    • com.myorg.util
      • pom.xml

Respuesta

7

Si los repositorios remotos que está utilizando son repositorios de liberación y en realidad no contienen cualquier instantánea, que puede deshabilitar instantáneas para ellos y Maven no comprobar a actualizaciones instantáneas. Por ejemplo:

<repositories> 
    <repository> 
    <id>java.net</id> 
    <url>http://download.java.net/maven/2</url> 
    <snapshots> 
     <enabled>false</enabled> 
    </snapshots> 
    </repository> 
    ... 
</repositories> 
+0

puro genio; Hubiera pensado que este sería un atributo que el repositorio controlaría, en lugar de cada usuario. – Justin

9

Usted puede tratar con el paso de la opción "-o" a Maven. -o activa el "modo fuera de línea", en el cual Maven no consulta repositorios remotos para buscar actualizaciones o nuevos artefactos.

No creo que pueda especificar esto por dependencia.

1

De manera predeterminada, maven comprueba primero las dependencias en su repositorio local y luego en los repositorios externos. El único caso que hará que Maven revise los repositorios externos es el uso de instantáneas.

Si usa instantáneas, puede usar la marca <updatePolicy> para cambiar el momento en que se verificará su repositorio externo.

Si desea trabajar en modo fuera de línea, puede establecer una opción temporal sin conexión en su comando mvn con la opción "-o", o puede configurarlo en su "~/.m2/settings.xml" con <offline>true</offline>.


Antes de hacerlo, recuerde utilizar el mojo dependecy:go-offline para descargar su dependencia de una vez antes de que realmente activa el modo fuera de línea.


Recursos:

Cuestiones relacionadas