cuando estoy haciendo desarrollo, a menudo necesito cambiar una dependencia, pero no estoy listo para implementar mis cambios. Por ejemplo, estoy trabajando en el proyecto Foo y me doy cuenta de que necesito agregar un método a la biblioteca común. Antes de implementar este cambio en nuestro repositorio interno, me gustaría instalar los cambios en la biblioteca común (mvn install
) y recompilar Foo para usar la biblioteca común en el repositorio local (tenga en cuenta que estoy usando todas las versiones de SNAPSHOT).¿Por qué maven usa mi repositorio interno antes de mi repositorio local?
Sin embargo, después de I mvn install
mi biblioteca común, cuando vuelvo a compilar Foo no utiliza la nueva biblioteca común - sigue usando la última INSTANTÁNEA de biblioteca común en el repositorio interno. Si despliego la biblioteca común modificada, Foo la recoge inmediatamente.
¿Cómo puedo hacer que maven mire primero en el repositorio local?
ACTUALIZACIÓN: cuando el archivo se instala en el repositorio local, recibe un nombre como foo-1.0.0-SNAPSHOT.jar
, pero cuando lo despliego, obtiene una marca de tiempo foo-1.0.0-20111104.191316-23.jar
. Creo que esta es la razón por la cual el artefacto remoto se tira cada vez. ¿Alguna idea de por qué mvn install
no funciona como mvn deploy
? ¿Tiene que ver con el hecho de que tengo un repositorio de instantáneas configurado para implementar?
¿Tiene una 'localRepository' en su [settings.xml] (http://maven.apache.org/settings.html) que apunta a un lugar que no existe? – millhouse
Compare la fecha de su sistema con la fecha de su sistema interno de repositorio (p. Ej., Nexus). Si hay un largo camino por delante, sus marcas de tiempo "ganarán" – millhouse