0

我们有一个带有 JavaScript 子模块的 Java 项目,其结构如下所示:

java-project |- folder1 |- folder2 |- ... |- javascript-submodule |- package.json |- ...

是否可以设置semantic-releasejavascript-submodule仅跟踪更改并使用它触发 npm 发布javascript-submodule/package.json

4

1 回答 1

2

您可以在任何目录中使用语义发布,您只需cd在运行semantic-release命令之前在该目录中进行操作。

然而语义发布的概念是分析自上次发布以来推送的提交。似乎您在同一个 repo 中有 2 个不同的项目(Java 一个和 Javascript 一个),因此提交分析将是有问题的,因为语义发布也会触发仅在 Java 项目中进行更改的提交发布。此外,语义发布使用 Git 标签来识别与发布相关的提交。因此,您最终会得到仅与 Javascript 项目相关的标签,例如v1.0.0v1.1.0等等...,并且可能与您为 Java 项目所做的手动发布冲突。

在您的情况下,最好的解决方案可能是使用语义发布一次发布两个项目: - 使用@semantic-release/exec插件发布 Java 项目 - 使用@semantic-release/npm插件发布 Javascript 项目有选项pkgRoot

在这样的配置中,Java 和 Javascript 项目将与相同的版本一起发布,并且 Git 标签将适用于两者。

于 2018-12-03T18:06:29.997 回答