我有一个包含4个模块的sbt项目:module-a
,module-b
,module-c
,module-d
。
每个模块都可以打包为WAR。我想在Jenkins上设置一个部署,它只构建4个模块中的一个并将其部署到容器中。
详细地说,我希望有4个Jenkins工作 - job-a
,job-b
,job-c
,job-d
,每个工作只构建定义的模块(a到d)。
目前,我正在使用clean update test package
作为Jenkins sbt构建的命令,但这会导致打包所有4个不必要的模块。
我已经尝试了project -module-a clean update test package
,但没有运气。
答案 0 :(得分:10)
您可能还想执行项目范围的clean
和test
任务,如下所示:
sbt module-a/clean module-a/test
对于以下命令适用于哪个项目,解决方案略短且更清晰。
您不需要执行update
任务,因为test
隐式执行该任务,如inspect tree test
中所述。
有一种方法可以通过别名使其更清洁。在build.sbt
:
addCommandAlias("jenkinsJob4ModuleA", "; module-a/clean; module-a/test")
使用别名,执行jenkinsJob4ModuleA
以获得与上述解决方案相同的效果。
答案 1 :(得分:5)
将参数引用到项目,即project module-a
,并且不要在子模块的名称前使用破折号。
Jenkins作业的整个命令行将如下所示:
./sbt "project module-a" clean update test