search - que - mvn compile
¿Cómo determinar si un artefacto Maven está en mi repositorio desde la línea de comandos? (2)
Me gustaría verificar desde la línea de comandos si una determinada coordenada ( groupId.artifactId.version
) se puede encontrar en un repositorio.
Si es posible, ¿se puede hacer con coordenadas parciales (por ejemplo, artifactId.version
)? ¿Puedo especificar el repositorio?
No pido soluciones alternativas: simplemente podría iniciar una búsqueda de archivos en mi repositorio local, o ingresar el artefacto en un POM y esperar errores, o instalar Nexus y buscar en la interfaz de usuario ...
Es una cuestión de conveniencia: una vez en el CLI, sería bueno poder verificar rápidamente.
Aquí está lo más cerca que creo que obtendrás:
mvn dependency:get -Dartifact=g:a:v -o -DrepoUrl=file://path/to/your/repo
Lo he intentado, tiene éxito si el artefacto (por ejemplo, "junit: junit: 4.8.2") está en su repositorio y falla si no lo está, pero debe escribir la ruta completa a su repositorio local como una URL .
La clave es usar el indicador -o (fuera de línea), ya que de lo contrario maven siempre verificará el repositorio central.
Nunca he oído hablar de algo como esto. Probablemente el objetivo del objetivo de dependency
es de alguna manera cercano, pero aún así no es exactamente lo que estás buscando. Me temo que no hay tal cosa. Sin embargo, escribir el propio plugin de Maven que hace lo que quieres puede ser bastante simple. El nuevo mecanismo de resolución de artefactos en Maven 3, llamado Aether, tiene una API realmente buena y simple.
De todos modos, mira el plugin de dependencia:
http://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html