例如,我可以写我的构建:
name in Test := "some name"
name in test := "some name"
Run Code Online (Sandbox Code Playgroud)
两者都完美无缺.那么它们之间的区别是什么?
第一种情况Test是类型配置。正如 sbt 的官方文档中令人悲伤的那样:
A configuration defines a flavor of build, potentially with its own classpath, sources, generated packages, etc.
Run Code Online (Sandbox Code Playgroud)
第二个test只是在全局范围内定义的简单任务。如果您调用inspect testsbt ,它将显示test仅执行所有测试并由全局范围提供*:test,它就像所有测试任务的聚合器。您可以使用命令查看正在测试的整个任务树inspect tree task。要检查Test配置,您应该调用inspect test:configuration,因为您可以看到它只是为项目中的测试范围提供配置。所以name in test和name in Test得到相同的结果