Какая разница в применении плагина gradle
Я не понимаю блок плагинов градиентов
apply plugin: 'someplugin1'
apply plugin: 'maven'
и другой:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
В первом блоке У нас есть имя плагина. во втором пакете и версии. Я не понимаю, где я должен использовать первый блок и второй.
Ответы
Ответ 1
Блок plugins
- это новый метод применения плагинов, и они должны быть доступны в репозитории плагинов Gradle. apply
подход является старшим, но более гибкий метод добавления плагина к вашей сборке.
Новый метод plugins
не работает в многопроектных конфигурациях (subprojects
, все allprojects
), но будет работать над конфигурацией сборки для каждого дочернего проекта.
Я думаю, что по мере прогрессирования функциональности метод настройки plugins
обойдет более старый подход, но на этом этапе оба могут быть и использоваться одновременно.
Ответ 2
Как уже упоминалось @cjstehno, apply plugin
является унаследованным методом, которого следует избегать.
С введением плагинов DSL у пользователей должно быть мало оснований использовать устаревший метод применения плагинов. Это описано здесь, если автор сборки не может использовать DSL-модули плагинов из-за ограничений в том, как он работает в настоящий момент.
С помощью нового plugins block
метода, вы можете добавить плагин и контроль, когда применять его с помощью необязательного параметра apply
:
plugins {
id «plugin id» version «plugin version» [apply «false»]
}
Вы все равно будете использовать устаревший метод в ситуациях, когда вы хотите применить уже добавленный, но не применяемый плагин в своем блоке plugins
. Например, в главном проекте добавлен плагин xyz
но не применяется, и его следует применять только в подпроекте subPro
:
plugins {
id "xyz" version "1.0.0" apply false
}
subprojects { subproject ->
if (subproject.name == "subPro") {
apply plugin: 'xyz'
}
}
Обратите внимание, что вам больше не нужна версия. Версия требуется в блоке plugins
если вы не используете один из плагинов Core Gradle, таких как java
, scala
,...
Я потратил некоторое время на понимание разницы, пытаясь создать приложение Spring Boot
, и поэтому я через некоторое время отвечаю на это. Следующий пример использования Spring Boot
plugin помог мне много:
Что следует использовать в настоящее время:
plugins {
id "org.springframework.boot" version "2.0.1.RELEASE"
}
Что было использовано до Gradle 2.1:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE"
}
}
apply plugin: "org.springframework.boot"