2010-02-24 18 views
5

Quiero limitar maven para usar solo el repositorio maven privado/no público, ¿estas dos configuraciones tienen el mismo efecto?¿Son estas dos configuraciones iguales en maven?

espejo 1.CONFIGURACIÓN en settings.xml

<mirrors> 
     <mirror> 
      <id>my-internal-site</id> 
      <mirrorOf>*</mirrorOf> 
      <name>our maven repository</name> 
      <url>http://myserver/repository</url> 
     </mirror> 
    </mirrors> 

repositorio 2.Ajustando en pom.xml

<repositories> 
    <repository> 
     <id>my-internal-site</id> 
     <name>our maven repository</name> 
     <url>http://myserver/repo</url> 
    </repository> 
    </repositories> 

De nuevo, el requisito es que nunca se experto sale a repositorios públicos, incluso si algunas dependencias no están ahí en el repositorio interno. gracias

Respuesta

3

No, no tienen el mismo efecto.

La segunda configuración agrega un nuevo repositorio como un "complemento" al central pero no impide que Maven revise central por sí mismo.

el primero Maven fuerzas de usar un único repositorio teniéndolo espejo todos solicitudes de depósito (mediante el establecimiento de mirrorOf*). Esta es la forma de usar a single repository.

Lo que está buscando es la primera configuración y debe definirse en el settings.xml.

Ahora, la adición de su diccionario de la empresa en el archivo ~/.m2/settings.xml de cada máquina puede ser un poco doloroso y lo que me gusta hacer en un entorno corporativo es distribuir e instalar una versión "a medida" de Maven que contiene el espejo predefinido en conf/settings.xml . De esta manera, la gente solo tiene que instalar la versión "corporativa" y están listos para funcionar.

+0

@Pascal Thivent gran respuesta Pascal – ant

+0

+1: Eso es * exactamente * lo que estoy haciendo: distribuí una versión personalizada de maven, con un 'conf/settings.xml' personalizado que incluye la directiva' mirrorOf'. – VonC

+0

Yo también uso un Maven personalizado registrado en SVN. Aquí radica el problema del huevo/pollo. Como purista de Maven, odio verificar los archivos binarios en SVN. Podríamos salirnos al registrar solo la carpeta de conf, pero ¿de dónde vendrá el Maven inicial? Alimento para pensar ... – Cliff

0

No, que significan cosas diferentes:

En el primer ejemplo, usted ha dicho que el repositorio dado es un espejo de todos los repositorios, incluyendo el funcionario uno.

En el segundo ejemplo, simplemente agrega un nuevo repositorio. En caso de que no se encuentre una dependencia en el repositorio local, Maven buscará en este repositorio después de habiendo buscado en el repositorio oficial.

Por lo tanto, para forzar el uso de un repositorio interno, debe configurar el mirror en su archivo settings.xml.

Esto se explica en the official documentation of Maven.

Cuestiones relacionadas