Статьи

Gradle Goodness: использование и работа с версией Gradle

Чтобы получить текущую версию 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 .