您可以从发布任务修改 SBT 构建的名称和版本吗?

Can you modify the name and version of a SBT build from the publish task?

我试图在 运行 publish 命令时更改 nameversion 设置?这是我的工作流程。

我写了一个自定义输入任务。它使用三个参数 namebuildNumberexportLocation 调用。我们使用游戏,name 是特定游戏的名称。 buildNumberPerforce 中游戏版本的更改列表 ID。 exportLocation 是一个文件路径,其中包含一堆 Perforce 构建输出的 XML 文件。我的任务解析 XML 文件,创建内存中对象树并将树序列化为 resourceManaged。换句话说,它会产生一堆资源。

我的最终目标是将这些资源捆绑在一个名称中使用 namebuildNumber 的 jar 文件中,并将工件发布到我们的内部存储库。

tl;dr 由于设置不可变,无法将 Settings 的值从 Tasks 更改。

您无法重新设置设置,因为它们是不可变的,除非您reload 一个项目设置了新值。这就是 commands 可以提供帮助的地方,因为他们对设置所在的状态进行操作。

有关此示例,请参阅 How to change setting inside SBT command?