Глава 42. Плагин разработки Java Gradle.

Плагин разработки Java Gradle на текущий момент является инкубационным. Пожалуйста, знайте, что DSL и другая конфигурация может измениться в последних версиях Gradle.

Плагин разработки Java Gradle может помочь в разработке плагинов Gradle. Он автоматически применяет плагин Java, добавляет зависимость gradleApi() к конфигурации компиляции и выполняет проверку метаданных плагина во время выполнения задачи jar.

Также плагин интегрируется с TestKit, библиотекой, которая в написании и выполнении функциональных тестов кода плагина. Он автоматически добавляет зависимость gradleTestKit() к конфигурации test compile и генерирует файл манифеста пути к классам плагина, который используется экземпляром GradleRunner, если найден. Пожалуйста, обратитесь к Секции 45.3.2 Автоматическое внедрение с плагином разработки Java Gradle, чтобы узнать больше об использовании, опциях настройки и примерах.

42.1. Использование.

Чтобы использовать плагин, включите следующий код в ваш сборочный скрипт:

Пример 42.1. Использование плагина разработки Java Gradle

build.gradle

plugins {
    id "java-gradle-plugin"
}
	  

Применение плагина автоматически применяет плагин Java и добавляет зависимость gradleApi() к конфигурации compile. Также оно добавляет несколько проверок к сборке.

Выполняются следующие проверки:

  • Определено ли описание плагина.
  • Содержит ли описание плагин свойство implementation-class.
  • Ссылается ли свойство implementation-class на корректный класс в jar-файле.
  • Каждый геттер свойства или соответствующее поле должно быть аннотировано аннотацией свойства, такими как @InputFile и @OutputDirectory. Свойства, которые не участвуют в проверка актуальности, должны быть аннотированы @Internal.

Каждая непройденная проверка выдаст предпреждение.

Для каждого разрабатываемого плагина, добавьте элемент в скриптовый блок gradlePlugin {}:

Пример 42.2. Использование блока gradlePlugin {}

build.gradle

gradlePlugin {
    plugins {
        simplePlugin {
            id = "org.gradle.sample.simple-plugin"
            implementationClass = "org.gradle.sample.SimplePlugin"
        }
    }
}
	  

Блок gradlePlugin {} задает плагины, которые будут собираться проектом и включает в себя id (идентификатор) и implementationClass (класс реализации) плагина. Из этих данных о разрабатываемых плагинах, Gradle может автоматически: