SBT 多项目构建中的 build.properties

Posted

技术标签:

【中文标题】SBT 多项目构建中的 build.properties【英文标题】:build.properties in SBT multi-project build 【发布时间】:2021-05-28 02:50:57 【问题描述】:

我有一个多项目构建,项目结构如下:

项目

build.properties

plugins.sbt

子项目

子项目1

项目/

build.properties

现在我们可以在 2 个 build.properies 文件中有 2 个不同的 sbt 版本吗?就像我们在根项目中使用 sbt 0.13 和 subProj1 下的 1.3 一样?还是 sbt 会像处理 plugins.sbt 一样忽略子项目的 build.properties 文件?

【问题讨论】:

【参考方案1】:

build.properties 仅与 sbt launcher 脚本相关,该脚本下载适当的版本工件。在 sbt "mother ship" 启动后,sbtVersion 不应再按照 inspect sbtVesion 进行修改:

> inspect sbtVersion
[info] Setting: java.lang.String = 1.4.7
[info] Description:
[info]  Provides the version of sbt.  This setting should not be modified.

考虑到OP中的项目结构,在根级别启动sbt后,build.properties以外的<root>/project/build.properties文件将被忽略。

【讨论】:

以上是关于SBT 多项目构建中的 build.properties的主要内容,如果未能解决你的问题,请参考以下文章

在SBT构建中的多项目构建中的自定义任务

sbt 插件和使用插件本身的多项目构建中的项目之间的相互依赖关系

如何通过将 sbt-plugin 用作多项目构建中的依赖项来访问它的子项目?

SBT将项目ID添加到多项目构建中的日志中

抑制 sbt-assembly 中的主类

使用 sbt 进行多项目构建