“./gradlew {package}-rpm”之后发生了什么

What happen after "./gradlew {package}-rpm"

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

谢谢。

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

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

所以:

  1. "Slurp" 将 BOM 配置到 config 对象中
  2. 对于 config 配置中定义的每个 "component",生成一组任务(${package}-rpm 和其他)
  3. 配置 ${package}-rpm 任务时,使用 BOM 配置通过任务闭包中提供的逻辑派生命令参数
  4. 执行时,运行 rpmbuild 带有上述命令参数