【发布时间】:2015-07-31 02:55:07
【问题描述】:
我目前有一个多项目 SBT 构建,其中有 2 个项目,其中一个依赖于另一个。依赖项有一个测试,它需要从其工作目录下的某个目录结构中加载文件。它使用配置文件中的相对路径来指定此目录结构。
问题在于,取决于我是通过我的 IDE(在子项目级别使用工作目录)还是在 SBT 总括项目级别(在总括级别使用工作目录)运行此测试,这会影响我的测试通过其相对路径加载此文件并成功。
我需要使用相对路径,以便从事此项目的其他开发人员可以使用开箱即用的签入代码,并且在项目中复制目录结构和包含的文件的两个级别是不可能的。我真正需要做的是在做测试时直接SBT将工作目录移动到子项目中,这样无论从哪里开始测试,目录结构都可以保持不变。
SBT 提供了一个 ForkOptions 类 (http://www.scala-sbt.org/0.13.0/api/index.html#sbt.ForkOptions),在此处进一步描述:页面底部的http://www.scala-sbt.org/0.13/docs/Forking.html,似乎可以通过它为分叉的 JVM 提供一个工作目录,但没有提供任何好处有关如何在根 build.sbt 中设置配置或为测试任务提供 ForkOptions 实例的示例。
有没有人有使用这个类的经验,和/或任何人都可以提供一些关于从 SBT 中的多项目构建中获取此功能的指导吗?
【问题讨论】: