maven 2 - que - Cómo especificar un repositorio para una dependencia en Maven
maven tutorial pdf (2)
He movido bibliotecas de repositorios de terceros a su propio proyecto e incluí este proyecto como primer módulo en mi proyecto base:
base / pom.xml
...
<modules>
<module>thirdparty</module>
<module>mymodule</module>
...
</modules>
base / thirdparty / pom.xml:
...
<artifactId>thirdparty</artifactId>
<packaging>pom</packaging>
<repositories>
<repository>
<id>First thirdparty repository</id>
<url>https://...</url>
</repository>
...
</repositories>
<dependencies>
<dependency>
<!-- Dependency from the third party repository -->
</dependency>
....
</dependencies>
base / mymodule / pom.xml:
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>thirdparty</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>
...
</dependencies>
Esto asegurará que las bibliotecas del repositorio de terceros se descarguen en el repositorio local tan pronto como se construya el proyecto raíz. Para todas las demás dependencias, los repositorios no son visibles y, por lo tanto, no se incluyen al descargar.
En proyectos con varias dependencias y repositorios, el enfoque de prueba y error de Maven para descargar dependencias es un poco engorroso y lento, por lo que me preguntaba si hay alguna forma de establecer un repositorio específico para algunas dependencias declaradas.
Por ejemplo, quiero que bouncycastle compruebe directamente el repositorio de BouncyCastle''s Maven en http://repo2.maven.org/maven2/org/bouncycastle/ lugar del oficial Maven.
Imposible. Maven verifica los repositorios en su orden de declaración hasta que un artefacto determinado se resuelva (o no).
Sin embargo, algún administrador de repositorio puede hacer algo al respecto. Por ejemplo, Nexus tiene una función de routes que hace algo equivalente.