Чтобы получить текущую версию Gradle, мы можем использовать свойство gradleVersion
объекта Gradle
. Это возвращает строковое значение, которое мы можем использовать для отображения значений. Если мы хотим сравнить версии Gradle, мы можем использовать объект GradleVersion
. С помощью этого класса мы можем получить текущую версию, но мы также можем сравнить версии Gradle. Это может быть полезно в наших скриптах сборки, если у нас есть функциональность, основанная на версии Gradle.
В следующем файле сборки у нас сначала есть задача, которая использует gradleVersion
Gradle
. Затем внутри задачи мы используем статический метод current
класса GradleVersion
. Мы получаем экземпляр GradleVersion
и отображаем различные свойства этого экземпляра. В задаче compareGradleVersion
мы создаем экземпляр GradleVersion
с помощью метода статической version
. Мы сравниваем несколько объектов GradleVersion
и обладаем различной функциональностью в зависимости от версии Gradle.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
task printGradleVersion << { // Get current Gradle version as object. final GradleVersion gradleVersion = GradleVersion.current() // Print different properties. println "Your Gradle version is ${gradleVersion.version}" println "Base version: ${gradleVersion.baseVersion}" println "Build time : ${gradleVersion.buildTime}" println "Build number: ${gradleVersion.buildNumber}" println "Commit id : ${gradleVersion.revision}" println "Next major : ${gradleVersion.nextMajor}" println "Snapshot? : ${gradleVersion.snapshot}" } task compareGradleVersion << { // Current Gradle version. final GradleVersion gradleVersion = GradleVersion.current() // Gradle version 2.1 as GradleVersion object. final GradleVersion gradle2_1 = GradleVersion.version( '2.1' ) // Compare versions. if (gradleVersion > gradle2_1) { println "Your Gradle version is newer than 2.1" } else if (gradleVersion == gradle2_1) { println "Your Gradle version is 2.1" } else { println "Your Gradle version is older than 2.1" } } |
Когда мы запускаем задачи, мы получаем следующий вывод:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
$ gradle -q printGradleVersion Gradle version is 2.2 Your Gradle version is 2.2 Base version: Gradle 2.2 Build time : 2014-11-10 13:31:44 UTC Build number: none Commit id : aab8521f1fd9a3484cac18123a72bcfdeb7006ec Next major : Gradle 3.0 Snapshot? : false $ gradle -q compareGradleVersion Your Gradle version is newer than 2.1 $ |
Спасибо Джону Энгельману, который показал мне этот класс по запросу для плагина Gradle Grails.
Ссылка: | Gradle Good: использование и работа с Gradle Version от нашего партнера по JCG Хьюберта Кляйна Иккинка в блоге JDriven . |