Что происходит после "./gradlew {package} -rpm" - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок в архитектуре bigtop, я хотел бы знать, как bigtop знает настоящую команду сборки, запускаемую для этой спецификации c package после ./gradlew {package}-rpm, я предполагаю, что должны быть какие-то конфигурации, определяющие настоящая команда сборки. (package - это проект Maven)

Спасибо.

1 Ответ

1 голос
/ 02 апреля 2020

Я не знаком с Bigtop, но я знаком с Gradle. Смотрите здесь определение задачи Gradle, на которое вы ссылаетесь: https://github.com/apache/bigtop/blob/2d6f3dd7b7241aa2191c9ebc5a502a1415932464/packages.gradle#L460

Команда, которую будет выполнять задача, указана в директиве exec: rpmbuild <command>. command - это массив аргументов, определенных непосредственно над этой директивой. Большинство его аргументов получены из объекта config, который в основном является вложенной картой (например, JSON объект), созданной Groovy ConfigSlurper , которая считывает входной файл спецификации как это был файл Groovy.

Итак:

  1. "Slurp" конфигурация спецификации в объект config
  2. Для каждого "компонента", определенного в config, создайте набор задач (${package}-rpm и другие)
  3. . При настройке задачи ${package}-rpm используйте конфигурацию спецификации для получения аргументов команды, используя logi c, предоставленный в закрытие задачи
  4. После выполнения запустить rpmbuild с вышеупомянутыми аргументами команды
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...