maven - exclusion - mvn tree example
Implementación de Maven: forzar la implementación incluso si ya existe un artefacto (3)
Parece que los administradores de middleware han configurado su instancia de repositorio remoto (Nexus o Artifactory o lo que sea) para no permitir la redistribución de artefactos, y como @khmarbaise dice que hay buenas razones para ello. Nexus se puede configurar para permitir la eliminación de artefactos por parte de los usuarios en un rol particular o con privilegios de eliminación de artefactos. Si sus administradores lo tienen configurado de esa manera, quizás pueda solicitar el privilegio de eliminación y eliminar los artefactos ofensivos. O tal vez el administrador de Nexus acepte hacerlo por usted.
Si ninguno de estos es posible, aquí hay algunas cosas que puede intentar y que podrían evitar que esto suceda en el futuro:
- Si está utilizando el complemento de
release
,-DdryRun=true
realice una ejecución en seco (-DdryRun=true
en el lanzamiento: prepare la línea de comando). Maven debe reportar cualquier error sin comprometerse con SCM. - Intenta ejecutar
mvn install
en tu grupo de proyectos primero. Esto instalará los artefactos en su repositorio local, no en el control remoto. Si hay un problema, puedes eliminar los artefactos de tu repo local y comenzar desde cero, repitiendo hasta que obtengas una versión completa. - Si está ejecutando una compilación de varios módulos, hay opciones de línea de comandos que permiten reanudar una compilación de Maven desde un proyecto en particular hacia adelante.
- Defina
-Dmaven.deploy.skip=true
en la línea de comandos de Maven. Esto es similar a la sugerencia # 2, excepto que Maven realmente cargará y configurará el complemento de implementación , simplemente no realizará la implementación real en el repositorio remoto. Una vez que todo funcione, elimine la propiedad de omisión.
Estoy creando un proyecto, que se compone de varios módulos (a veces no relacionados) y algunos más módulos de java no estándar (creados con ANT).
Cada módulo de Maven se implementa en el repositorio de versiones una vez finalizado.
Si la compilación falla en el medio, es posible que ya haya implementado algunos módulos, por lo que si intento reconstruir, el nuevo intento de implementación fallará ya que los artefactos ya están implementados.
¿Es posible forzar un despliegue o, en su lugar, eliminar el artefacto desplegado antes de que lo vuelva a implementar?
Se han incrementado las posibles opciones;)
Utilice el parámetro deployAtEnd (Más información: here ). Con este parámetro, los artefactos se despliegan solo si todos los artefactos se construyeron con éxito.