松耦合项目和ModuleID的SettingKey类型

时间:2013-12-17 19:05:21

标签: sbt

我正在编写一个sbt插件,用于为运行时和测试组装松散耦合的模块/服务。这些模块可以是一个项目(在这个多项目构建中)或一个ModuleID(通过Ivy解决)。项目结构可能如下所示:

  • FOO
  • foobar的

项目之间没有类路径依赖关系。让我们说项目foo是自包含的。项目栏需要foo才能开始测试吧。项目foobar将需要启动foo,bar和org.sample.mymodule-1.0.0引用的模块。

项目foo,bar和foobar在root中声明(并且此处未列出其他项目依赖项,但它们之间没有依赖项)。要实现这些,我们需要:

  1. 声明可以在子项目(例如foobar)中设置的设置(looseCoupledDependencies),该设置可以将其他模块作为子项目或工件引用。
  2. 对于其中的每一个,找到类路径并使用该类路径启动JVM并在运行/测试时启动模块。
  3. 我仍然坚持#1。 1)我找不到可以代表Project和ModuleID的类型和2)我不能在foobar中引用root中的项目(假设我在设置中有一个SettingKey [Seq [Project]] - 这也不是正确的类型)

    我怎样才能实现这样的设置,可以轻松处理这两种类型并允许子项目的引用?感谢。

0 个答案:

没有答案