我们有一个带有 JavaScript 子模块的 Java 项目,其结构如下所示:
java-project
|- folder1
|- folder2
|- ...
|- javascript-submodule
|- package.json
|- ...
是否可以设置semantic-release
为javascript-submodule
仅跟踪更改并使用它触发 npm 发布javascript-submodule/package.json
?
我们有一个带有 JavaScript 子模块的 Java 项目,其结构如下所示:
java-project
|- folder1
|- folder2
|- ...
|- javascript-submodule
|- package.json
|- ...
是否可以设置semantic-release
为javascript-submodule
仅跟踪更改并使用它触发 npm 发布javascript-submodule/package.json
?
您可以在任何目录中使用语义发布,您只需cd
在运行semantic-release
命令之前在该目录中进行操作。
然而语义发布的概念是分析自上次发布以来推送的提交。似乎您在同一个 repo 中有 2 个不同的项目(Java 一个和 Javascript 一个),因此提交分析将是有问题的,因为语义发布也会触发仅在 Java 项目中进行更改的提交发布。此外,语义发布使用 Git 标签来识别与发布相关的提交。因此,您最终会得到仅与 Javascript 项目相关的标签,例如v1.0.0
,v1.1.0
等等...,并且可能与您为 Java 项目所做的手动发布冲突。
在您的情况下,最好的解决方案可能是使用语义发布一次发布两个项目: - 使用@semantic-release/exec插件发布 Java 项目 - 使用@semantic-release/npm插件发布 Javascript 项目有选项pkgRoot
在这样的配置中,Java 和 Javascript 项目将与相同的版本一起发布,并且 Git 标签将适用于两者。