0

我是 bigtop 架构的新手,我想知道 bigtop 是如何知道要在这个特定package之后启动的真正构建命令的./gradlew {package}-rpm,我假设必须有某种配置定义真正的构建命令。(这package是一个基于 Maven 的项目)

谢谢你。

4

1 回答 1

2

我不熟悉 Bigtop,但我熟悉 Gradle。请参阅此处了解您所指的 Gradle 任务定义:https ://github.com/apache/bigtop/blob/2d6f3dd7b7241aa2191c9ebc5a502a1415932464/packages.gradle#L460

任务将执行的命令在exec指令下给出:rpmbuild <command>. command是在该指令上方定义的参数数组。它的大部分参数都派生自config对象,该对象基本上是由 Groovy 的ConfigSlurper生成的嵌套映射(如 JSON 对象) ,它读取输入 BOM 文件,就好像它是一个 Groovy 文件一样。

所以:

  1. 将 BOM 配置“Slurp”到config对象中
  2. 对于config配置中定义的每个“组件”,生成一组任务(${package}-rpm和其他)
  3. 配置${package}-rpm任务时,使用 BOM 配置使用任务闭包中提供的逻辑派生命令参数
  4. 执行后,rpmbuild使用上述命令参数运行
于 2020-04-01T23:15:27.617 回答