jenkins sbt

¿Cómo ejecutar el paquete para un submódulo solo en Jenkins?



sbt (2)

Tengo un proyecto sbt con 4 módulos: module-a , module-b , module-c , module-d .

Cada módulo se puede empaquetar como GUERRA. Quiero configurar una implementación en Jenkins que construya solo uno de los 4 módulos y desplegarlo en un contenedor.

En detalle, quiero tener 4 trabajos de Jenkins - job-a , job-b , job-c , job-d , cada edificio solo el módulo definido (de la a d).

Por ahora, estoy usando clean update test package como el comando para la compilación de Jenkins sbt, pero esto da como resultado el empaquetado de los 4 módulos que no es necesario.

Ya probé project -module-a clean update test package pero sin suerte.


Cite el argumento para proyectar, es decir, project module-a , y no use un guion antes del nombre del submódulo.

La línea de comando completa para el trabajo de Jenkins sería la siguiente:

./sbt "project module-a" clean update test


También puede ejecutar las tareas de test y clean ámbito del proyecto de la siguiente manera:

sbt module-a/clean module-a/test

La solución es un poco más corta y clara en cuanto a qué proyecto se aplican los siguientes comandos.

No es necesario ejecutar la tarea de update ya que se ejecuta implícitamente mediante test como se describe en inspect tree test .

Hay una manera de hacerlo más limpio con un alias. Use lo siguiente en build.sbt :

addCommandAlias("jenkinsJob4ModuleA", "; module-a/clean; module-a/test")

Con el alias, ejecute jenkinsJob4ModuleA para tener el mismo efecto que la solución anterior.