Estoy trabajando en un proyecto Maven bastante grande. Probablemente tenemos alrededor de 70 artefactos individuales, que se dividen aproximadamente en dos bibliotecas de código compartido y tal vez diez aplicaciones que los usan. Todos estos elementos viven en el espacio de nombres com.mycompany.*
.
La mayoría de las veces corremos contra compilaciones de instantáneas. Entonces, para hacer una compilación completa de una aplicación, primero podría compilar los proyectos de la biblioteca para que se instalen en mi repositorio local (como, por ejemplo mycompany-libname-2.4-SNAPSHOT.jar
).
El problema es que cuando voy a construir las aplicaciones. Por alguna razón, Maven quiere verificar los dos principales repositorios públicos (maven-net-repo y java-net-repo) para ver las actualizaciones de todos los mycompany-*-SNAPSHOT.jar
artefactos. Por supuesto, no se encuentran allí, y todo finalmente se resuelve a las versiones que acabo de construir en mi repositorio local, pero me gustaría que Maven dejara de hacerlo porque (a) me hace sentir como un mal ciudadano neto. por revisar constantemente estos repositorios en busca de cosas que nunca estarán allí, y (b) agrega latencia de red innecesaria y molesta a mi proceso de compilación.
La mayoría de las veces he estado ejecutando Maven en modo fuera de línea para solucionar este problema, pero eso no es ideal ya que ocasionalmente se actualizará una dependencia de una biblioteca pública. Entonces, lo que estoy buscando es una solución que haga que Maven no busque actualizaciones de los repositorios dados para artefactos que cumplan con ciertos criterios; en este caso, estaría feliz si Maven ignorara las versiones SNAPSHOT o los artefactos que estaban en El com.mycompany
espacio de nombres.