我们有一个带有JavaScript子模块的Java项目,其结构如下:
java-project
|- folder1
|- folder2
|- ...
|- javascript-submodule
|- package.json
|- ...
是否可以设置semantic-release
来仅跟踪对javascript-submodule
的更改并使用javascript-submodule/package.json
触发npm发布?
答案 0 :(得分:0)
您可以在任何目录中使用 semantic-release ,只需在运行cd
命令之前在该目录中访问semantic-release
。
然而,语义发布的概念是分析自上一个发布以来推送的提交。看来您在同一个存储库中有2个不同的项目(Java和Javascript),因此提交分析会出现问题,因为 semantic-release 还会触发仅在Java项目。
另外,语义发布使用Git标签来标识与发布相关的提交。这样一来,您将得到v1.0.0
,v1.1.0
等标签,这些标签仅与Javascript项目相关,并且可能与您为Java项目编写的手册发行版冲突。
在您的情况下,最好的解决方案可能是使用语义发布一次发布两个项目:
-使用@semantic-release/exec插件发布Java项目
-使用@semantic-release/npm插件通过选项pkgRoot
在这种配置中,Java和Javascript项目都将以相同的版本一起发布,而Git标签将同时应用于两者。