Saltar al contenido

¿Por qué Maven descarga el maven-metadata.xml cada vez?

Solución:

Mira en tu settings.xml (o, posiblemente, el POM principal o corporativo de su proyecto) para el <repositories> elemento. Se verá algo parecido a lo que se muestra a continuación.

<repositories>
    <repository>
        <id>central</id>
        <url>http://gotoNexus</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
        </releases>
    </repository>
</repositories>

Nota la <updatePolicy> elemento. El ejemplo le dice a Maven que se comunique con el repositorio remoto (Nexus en mi caso, Maven Central si no está usando su propio repositorio remoto) cada vez que Maven necesite recuperar un artefacto de instantánea durante una compilación, verificando si hay una copia más nueva. Los metadatos son necesarios para esto. Si hay una copia más reciente, Maven la descarga en su repositorio local.

En el ejemplo, para las versiones, la política es daily por lo que lo comprobará durante la primera compilación del día. never también es una opción válida, como se describe en los documentos de configuración de Maven.

Los complementos se resuelven por separado. También puede tener repositorios configurados para esos, con diferentes políticas de actualización si lo desea.

<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>http://gotoNexus</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
        </snapshots>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
        </releases>
    </pluginRepository>
</pluginRepositories>

Alguien más mencionó el -o opción. Si lo usa, Maven se ejecuta en modo “sin conexión”. Sabe que solo tiene un repositorio local y no se comunicará con el repositorio remoto para actualizar los artefactos, independientemente de las políticas de actualización que utilice.

Posiblemente sea para usar la bandera -o,--offline "Work offline" para evitar eso.

Como esto:

maven compile -o

Supongo que debido a que no especificó la versión del complemento, se activa la descarga de metadatos asociados para obtener el último.

De lo contrario, ¿intentó forzar el uso del repositorio local usando -o?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *