1

我正在寻找一种在 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。

4

1 回答 1

0

使用 Bazel,您可以忘记在 Maven 中使用的 hacky 哈希。Bazel 为您维护哈希,并将重新编译所需的一切。这是{reliable, fast}的可靠部分:选择两个

于 2018-09-22T11:17:26.947 回答