Учебники

Gradle — Build Script

Gradle создает файл сценария для обработки двух вещей; один — это проекты, а другой — задачи . Каждая сборка Gradle представляет один или несколько проектов. Проект представляет собой библиотечный JAR или веб-приложение или может представлять собой ZIP, собранный из JAR, созданных другими проектами. Проще говоря, проект состоит из разных задач. Задача означает часть работы, которую выполняет сборка. Задачей может быть компиляция некоторых классов, создание JAR, генерация Javadoc или публикация некоторых архивов в хранилище.

Gradle использует Groovy для написания скриптов.

Написание сценария сборки

Gradle предоставляет предметно-ориентированный язык (DSL) для описания сборок. Это использует язык Groovy, чтобы упростить описание сборки. Каждый сценарий сборки Gradle кодируется с использованием UTF-8, сохраняется в автономном режиме и называется build.gradle.

build.gradle

Мы описываем задачи и проекты с помощью скрипта Groovy. Вы можете запустить сборку Gradle с помощью команды Gradle. Эта команда ищет файл с именем build.gradle . Взгляните на следующий пример, представляющий небольшой скрипт, который печатает tutorialspoint . Скопируйте и сохраните следующий скрипт в файл с именем build.gradle . Этот скрипт сборки определяет имя задачи hello, которое используется для вывода строки tutorialspoint.

task hello {
   doLast {
      println 'tutorialspoint'
   }
}

Выполните следующую команду в командной строке. Он выполняет вышеуказанный скрипт. Вы должны выполнить это, где хранится файл build.gradle.

C:\> gradle –q hello

Выход:

tutorialspoint

Если вы думаете, что задача работает аналогично цели ANT, то это правильно — задача Gradle эквивалентна цели ANT.

Вы можете упростить эту задачу приветствия, указав ярлык (представляет символ << ) для оператора doLast . Если вы добавите этот ярлык к вышеупомянутой задаче, привет, он будет выглядеть как следующий скрипт.

task hello << {
   println 'tutorialspoint'
}

Как и выше, вы можете выполнить приведенный выше скрипт с помощью команды gradle –q hello .

Сценарий Grade в основном использовал два реальных объекта, один из них — объект проекта, а другой — объект сценария.

Объект проекта — каждый сценарий описывает один или несколько проектов. Во время выполнения этот сценарий настраивает объект проекта. Вы можете вызывать некоторые методы и использовать свойства в вашем скрипте сборки, которые делегированы объекту проекта.

Сценарий Объект — Gradle взят код сценария в классы, который реализует интерфейс сценариев, а затем выполняется. Это означает, что все свойства и методы, объявленные интерфейсом скрипта, доступны в вашем скрипте.

В следующей таблице приведен список стандартных свойств проекта . Все эти свойства доступны в вашем скрипте сборки.

Старший название Тип Значение по умолчанию
1 проект проект Экземпляр проекта
2 название строка Название каталога проекта.
3 дорожка строка Абсолютный путь проекта.
4 описание строка Описание для проекта.
5 ProjectDir файл Каталог, содержащий скрипт сборки.
6 buildDir файл ProjectDir / сборки
7 группа объект Неопределенные
8 версия объект Неопределенные
9 муравей AntBuilder Экземпляр AntBuilder

Groovy Основы

Скрипты сборки Gradle используют полнофункциональный Groovy API. В качестве стартапа взгляните на следующие примеры.

В следующем примере объясняется, как преобразовать строку в верхний регистр.

Скопируйте и сохраните приведенный ниже код в файл build.gradle .

task upper << {
   String expString = 'TUTORIALS point'
   println "Original: " + expString
   println "Upper case: " + expString.toUpperCase()
}

Выполните следующую команду в командной строке. Он выполняет приведенный выше скрипт. Вы должны выполнить это, где хранится файл build.gradle.

C:\> gradle –q upper

Выход:

Original: TUTORIALS point
Upper case: TUTORIALS POINT

В следующем примере объясняется, как печатать значение неявного параметра ($ it) 4 раза.

Скопируйте и сохраните следующий код в файл build.gradle .

task count << {
   4.times { 
      print "$it " 
   }
}

Выполните следующую команду в командной строке. Он выполняет приведенный выше скрипт. Вы должны выполнить это, где хранится файл build.gradle.

$ gradle –q count

Выход:

0 1 2 3

Groovy язык предоставляет множество функций, некоторые из которых обсуждаются ниже.

Groovy JDK Методы

Groovy добавляет множество полезных методов в стандартные классы Java. Например, Iterable API из JDK реализует метод each (), который выполняет итерацию по элементам Iterable Interface.

Скопируйте и сохраните следующий код в файл build.gradle .

task groovyJDK << {
   String myName = "Marc";
   myName.each() { 
      println "${it}" 
   };
}

Выполните следующую команду в командной строке. Он выполняет приведенный выше скрипт. Вы должны выполнить это, где хранится файл build.gradle.

C:\> gradle –q groovyJDK

Выход:

M
a
r
c

Средства доступа к недвижимости

Вы можете автоматически получить доступ к соответствующим методам получения и установки определенного свойства, указав его ссылку.

Следующий фрагмент определяет синтаксис методов getter и setter свойства buildDir .

// Using a getter method
println project.buildDir
println getProject().getBuildDir()

// Using a setter method
project.buildDir = 'target'
getProject().setBuildDir('target')

Необязательные скобки при вызове метода

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

Посмотрите на следующий синтаксис. Это определяет метод, вызывающий systemProperty тестового объекта.

test.systemProperty 'some.prop', 'value'
test.systemProperty('some.prop', 'value')

Закрытие как последний параметр метода

Gradle DSL использует замыкания во многих местах. Если последний параметр метода является закрытием, вы можете поместить закрытие после вызова метода.

Следующий фрагмент кода определяет синтаксис, используемый Closures в качестве параметров метода repositories ().

repositories {
   println "in a closure"
}
repositories() { 
   println "in a closure" 
}
repositories({ println "in a closure" })

Импорт по умолчанию

Gradle автоматически добавляет набор операторов импорта в сценарии Gradle. В следующем списке показаны пакеты импорта по умолчанию для скрипта Gradle.