es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo asegurarse de que Maven no despliegue accidentalmente en el repositorio de lanzamiento?

Así que estoy trabajando para un cliente que utiliza declaraciones de implementación mvn en sus scripts de construcción y estoy tratando de encontrar una manera de evitar que Maven sobrescriba accidentalmente artefactos en el repositorio de lanzamiento de Artifactory, por ejemplo, si un desarrollador olvida marcar su versión POM con -SNAPSHOT en su rama de funciones.

No soy un experto en Maven, pero he visto algunas sugerencias, como el uso de ciertos plugins de Maven, pero el uso de estos plugins debe configurarse en el POM y luego vuelvo al punto de partida, ¿qué pasa si esto se olvida en una rama de funciones? Debe haber un método establecido para asegurar que no se implementen artefactos de ramas de características en el repositorio de lanzamiento y que no se implementen artefactos de ramas de lanzamiento accidentalmente en el repositorio de instantáneas.

Una forma en que puedo pensar y que también se ha sugerido es simplemente no permitir la redistribución en el repositorio de lanzamiento en Artifactory, pero ¿qué pasa si tengo una compilación de validación que se dispara después de que se crea una PR y luego se dispara otra compilación de CI y trata de redistribuir?

¿Hay otra buena manera de lograr esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en maven, artifactory, maven-plugins y mvn-repo, entiendo la necesidad de evitar que Maven sobrescriba accidentalmente artefactos en el repositorio de lanzamiento de Artifactory. Para lograr esto, existen algunas soluciones establecidas que se pueden implementar:

    1. Usar los repositorios de lanzamiento y snapshot de Artifactory: Los artefactos en el repositorio de lanzamiento no pueden ser sobrescritos, mientras que los snapshots se pueden actualizar. Los desarrolladores pueden cargar snapshots en el repositorio de snapshots, y una vez que estén listos para el lanzamiento, pueden ser promovidos al repositorio de lanzamiento.
    2. Usar el plugin deploy de Maven: El plugin deploy de Maven se puede configurar para que solo se implemente en el repositorio de snapshots y no en el repositorio de lanzamiento. Esto se puede hacer estableciendo el parámetro configureReleaseRepository en falso.

    3. Usar las propiedades de implementación de Artifactory: Artifactory permite establecer propiedades en cada artefacto, que se pueden usar para determinar si un artefacto es un lanzamiento o un snapshot. Puede crear una condición en su script de compilación para que solo se implemente en el repositorio de lanzamiento si el artefacto tiene una propiedad de lanzamiento.

    4. Usar los permisos de carpeta de Artifactory: Puede establecer permisos en carpetas específicas en Artifactory, lo que impide que ciertos equipos o usuarios implementen artefactos en el repositorio de lanzamiento.

    Como experto en IT, es importante elegir el método que mejor se adapte a las necesidades de su cliente y a los requisitos específicos del proyecto. Al aplicar uno o una combinación de estos métodos, puede evitar la sobrescritura accidental en el repositorio de lanzamiento de Artifactory.

Comments are closed.