我正在寻找一种在 genrule 中使用输入文件的哈希运行命令的方式。
我想在我的项目中开始用 Bazel 替换 Maven。它是一个多存储库设置,从不同存储库的源代码构建选定的产品。
ProjectA
- moduleA1
- moduleA2
ProjectB
- moduleB1
- moduleB2
Maven 构建可以这样执行:
cd ProjectA
mvn versions:set -DnewVersion=A_HASH
mvn clean install
cd ../ProjectB
mvn versions:set -DnewVersion=B_HASH
mvn clean install -DprojectA-version=A_HASH
我过去versions:set不依赖快照,甚至在本地也能获得可靠的构建。我可以使用来自 GIT 的哈希,但这还不够,因为 1)我希望构建在本地工作而不提交更改 2)B_HASH应该在 ProjectA 更改时更改
Bazel 将让我仅在文件更改时重新运行 maven,但将其与 maven 存储库集成是不够的。
有没有办法使用输入文件的哈希来实现调用“mvn 版本:set -DnewVersion=HASH”的 genrule?Bazel 计算输入文件的哈希,但我找不到如何将此哈希公开给 genrule。