tengo un artefacto que debe ser construido por varias plataformas de destino:Sincronización de versiones de artefactos a través de plataformas con proceso de liberación experto
- Linux x86
- de Windows x86
- ARM11
por desgracia a la falta de crosscompilers, no es posible crear todas las versiones del artefacto de una vez.
Usando otras palabras, el objetivo es tener en el repositorio algo como esto
- artifact-1.0.0-linux.zip
- artifact-1.0.0-windows.zip
- artefacto -1.0.0-arm11.zip
- artifact-1.0.1-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.1-arm11.zip
- ...
Tenga en cuenta que las versiones están sincronizadas. ¿Cómo lograr esto?
El hecho es que el proceso de lanzamiento actualiza la versión del pom.xml después de cada compilación. Así que mediante la construcción de forma consecutiva en varias plataformas que puedo lograr tener
- artifact-1.0.0-linux.zip
- artifact-1.0.1-windows.zip
- artifact-1.0.2-arm11.zip
- artifact-1.0.3-linux.zip
- artifact-1.0.4-windows.zip
- artifact-1.0.5-arm11.zip
- ...
pero esto no es lo que estoy buscando.
pude
se ejecutan en Linux
liberación mvn: preparar la liberación: realizar -DpushChanges = false
(con pushChanges establece en false liberación no va a aumentar el número de versión en SCM)
y luego ejecutar en Windows
liberación mvn: preparar a liberar: realizar
(esto aumentará el número de versión)
Pero entonces la responsabilidad de desencadenar los procesos de liberación en diversas plataformas en el orden adecuado recae en mí. ¿Hay alguna manera de que maven pueda ayudarme con esto?
¿Tiene alguna sugerencia?
Gracias
PS. Tenga en cuenta que esta no es una pregunta sobre cómo organizar en módulos. Se trata de cómo sincronizar los procesos de lanzamiento de un solo artefacto en múltiples plataformas.
Pero mi punto es que cuando estás en Linux, no puedes crear un binario para Windows (debido a algunas limitaciones de la cadena de herramientas). Entonces, el proceso de compilación cuando se ejecuta en Linux no puede crear archivos binarios de Windows. Y viceversa. Así que no puedes crear todos los binarios para todas las plataformas de una vez. --- Esta no es una pregunta sobre cómo organizar en módulos. Se trata de cómo sincronizar los procesos de publicación de un solo artefacto en múltiples plataformas. –
OK, así que me temo que Maven no puede ayudarle a hacer esto tan automáticamente como quiera, a menos que desee (y tenga algo de tiempo) crear su propio complemento de lanzamiento. Como mencionaste, puedes hacer todo lo que necesites sin chocar con una versión y luego terminar de una manera global al final, pero esto es algo que debes recordar. También puede descartar versiones comunes (heredadas de los elementos principales) y escribir literalmente versiones en todos los módulos POM. Esta vez, sin embargo, debe controlar este proceso y asegurarse de que todos los módulos se publiquen con la versión y cada módulo se libere una vez. Realmente no puedo ver el 100% de manera automática. –
Siempre tengo poco tiempo :) De todos modos, gracias por la ayuda. –