sbt插件没有从子模块中获取?

时间:2014-04-03 13:04:27

标签: sbt multi-module

我试图将单个模块项目转换为两个模块 根聚合。感觉像是正常的事情。

所以,为了简化我删除了我添加的第二个项目,但是我 做类似的事情:

cd myproject
mkdir core
mv * core

然后在myproject中添加build.sbt,如

lazy val root = project.in( file(".") ).aggregate(core)
lazy val core = project in file("core")

然而,尝试构建核心我得到:

  

[myproject] /core/build.sbt:22:错误:找不到:值lessSettings   SEQ(lessSettings:_ *)

这是在project / plugins.sbt中添加的插件的设置 原始项目现在在

[myproject]/core/project/plugins.sbt

为什么不接这个?我不能只使用插件 子模块? cd:进入核心子模块并运行sbt它运行得很好。我有吗 将我的插件移动到root / project?非常好,它不可以吗?

1 个答案:

答案 0 :(得分:8)

您的plugin.sbt文件会被忽略,因为您无法在多项目构建的子项目中拥有project子文件夹。

multi-project build

  • 根项目的.sbt个文件以及所有子项目的所有.sbt个文件都是单个构建定义的一部分。子项目中定义的设置只是自动作用于该项目。

  • 由于只有一个构建定义,因此只有一个项目可以构建该构建定义,并且该项目位于根项目的project/文件夹中。子项目的所有project/个文件夹都将被忽略。

在您的情况下,将plugin.sbt移至构建根project文件夹应该会使您的插件重新显示。

此外,如果您只使用core项目,而不是在核心中运行sbt,则可以在根项目中运行sbt并输入project core到& #34;移动" (实际上,将你所做的一切都做到了)核心子项目。