9

我有一个包含 4 个模块的 sbt 项目:module-a, module-b, module-c, module-d.

每个模块都可以打包为一个 WAR。我想在 Jenkins 上设置一个部署,只构建 4 个模块中的一个并将其部署到容器中。

详细地说,我想要 4 个 Jenkins 工作 - job-ajob-bjob-cjob-d,每个只构建定义的模块(a 到 d)。

目前,我将clean update test package其用作 Jenkins sbt 构建的命令,但这会导致打包所有 4 个不必要的模块。

我已经尝试过project -module-a clean update test package,但没有运气。

4

2 回答 2

14

您可能还希望执行以下项目范围cleantest任务:

sbt module-a/clean module-a/test

对于以下命令适用于什么项目,该解决方案稍微更短更清晰。

您不需要执行update任务,因为它是隐式执行的test,如inspect tree test.

有一种方法可以使用别名使其更清洁。在 中使用以下内容build.sbt

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

使用别名,执行jenkinsJob4ModuleA与上述解决方案相同的效果。

于 2014-07-31T15:05:41.243 回答
6

引用 project 的参数,即project module-a,并且不要在子模块的名称前使用破折号。

Jenkins 作业的整个命令行将如下所示:

./sbt "project module-a" clean update test
于 2013-08-31T15:49:17.783 回答