2016-07-17 3 views
3

У меня есть несколько проектов и один ствол ...Как узнать, какой проект работает в Gradle

Несколько раз мне нужно запустить через CMD:

gradlew Proj1:assembleRelease 

И другие времена:

gradlew Proj2:assembleRelease 

Как я могу в файле gradle узнать, что такое построение Proj1 или Proj2?

ответ

1

Вы можете получить эту информацию через имущество gradle на любой случай Project. От the docs:

getGradle()
Возвращает вызов Gradle, который этот проект принадлежит.

Экземпляр Gradle предоставляет объект startParameter, в котором содержится информация, которую вы хотите. Например, в корневой сфере:

print project.gradle.startParameter 

Для моего конкретного вызова, я мог бы напечатать имя первого запроса задачи с помощью

print project.gradle.startParameter.taskRequests[0].args[0] 

Однако выше, вероятно, довольно хрупок и, безусловно, не в состоянии в ряде важных случаев.

Есть также много других вещей, которые могут оказаться полезными в экземпляре Gradle, если выше не делает именно то, что вы хотите, например, график выполнения задачи и корневой проект для этой сборки. Обратите внимание, что вся вышеуказанная информация доступна по ссылкам из документации для класса Project, которую я связал выше. Я настоятельно рекомендую вам ознакомиться с этой документацией.

С другой стороны, для чего вы хотите это сделать? Обычно вы просто добавляете конфигурацию к самим отдельным проектам и позволяете руководителю задачи заботиться о выполнении ваших конкретных реализаций, вместо того, чтобы говорить if task1 is running then x else y

Смежные вопросы