我有一个多模块构建,并希望独立地为不同的子项目运行测试。
有没有办法在sbt中执行此操作,例如如果我的多项目构建包含core
和commons
项目,我只想在test
项目中运行commons
。
答案 0 :(得分:48)
运行sbt commons/test
。请参阅Scopes中的详细说明。
您也可以使用来自sbt的两个命令的组合 - 使用project
更改当前项目并在之后执行test
。
sbt "project commons" test
您也可以使用
sbt "; project commons; test"
答案 1 :(得分:9)
您正在以交互模式运行sbt
:
> project commons
> test
您可以使用:
切换回core
> project core
答案 2 :(得分:6)
没关系,我偶然发现了这个: How to execute package for one submodule only on Jenkins?
sbt "project core" test
答案 3 :(得分:1)
另一种方法。
进入SBT交互模式
> sbt
sbt:core>公用/测试
无需在项目之间切换。
答案 4 :(得分:1)
还有另一种为特定模块打开sbt的方法。 转到模块目录的位置,然后键入“ sbt”命令。
sbt然后将仅在该模块的交互模式下打开
答案 5 :(得分:0)
如果仅使用git,仅对已删除文件中已添加,修改的子模块运行sbt测试:
while read -r proj ; do sbt "project $proj" test ; \
done < <(git status --porcelain | cut -c 3- | cut -d/ -f1