Nie rozumiem bloku wtyczek gradle
apply plugin: 'someplugin1'
apply plugin: 'maven'
i drugi:
plugins {
id 'org.hidetake.ssh' version '1.1.2'
}
W pierwszym bloku Mamy nazwę wtyczki. w drugim pakiecie i wersji. Nie rozumiem, gdzie powinienem użyć pierwszego bloku, a kiedy drugiego.
groovy
gradle
gradle-plugin
Jewgienij Kulik
źródło
źródło
Odpowiedzi:
plugins
Blok jest nowszy sposób zastosowania wtyczki i muszą być dostępne w Gradle repozytorium wtyczki .apply
Podejście jest starszy, jeszcze bardziej elastyczny sposób dodawania wtyczki do kompilacji.Nowa
plugins
metoda nie działa w konfiguracjach obejmujących wiele projektów (subprojects
,allprojects
), ale działa w konfiguracji kompilacji dla każdego projektu potomnego.Sądzę, że wraz z postępem funkcjonalności
plugins
metoda konfiguracji zastąpi starsze podejście, ale w tym momencie oba mogą być i są używane jednocześnie.źródło
plugins {...}
) nie działa w przypadku wtyczek prywatnych lub firmowych, które nie są publikowane w oficjalnym repozytorium wtyczek Gradle. Dlatego mam nadzieję, że stare podejście przynajmniej przetrwa, dopóki nowe nie będzie obsługiwać wyszukiwania w prywatnych repozytoriach.plugins
działa w wielu projektach, zgodnie z samouczkiem Gradle (Gradle wersja 5.6.2) guide.gradle.org/creating-multi-project-builds/... Używaplugins
bloku z,apply false
aby dodać wtyczkę do całego projektu, ale nie dodaje do głównego projektu. Podprojektplugins
ponownie używa bloków, aby dodać wtyczkę.plugins
overapply plugin
.apply plugin
Jak już wspomniano @cjstehno,
apply plugin
jest to starsza metoda, której należy unikać.Dzięki nowej
plugins block
metodzie możesz dodać wtyczkę i kontrolować, kiedy ją zastosować, używając opcjonalnego parametruapply
:Nadal używałbyś starszej metody w sytuacjach, w których chcesz zastosować już dodaną, ale nie zastosowaną wtyczkę w swoim
plugins
bloku. Np. W projekcie głównym wtyczkaxyz
jest dodawana, ale nie stosowana, i powinna być stosowana tylko w podprojekciesubPro
:Zauważ, że nie potrzebujesz już wersji. Wersja jest wymagane w
plugins
bloku chyba że używasz jednej z wtyczek Rdzeń Gradle, takich jakjava
,scala
...Spędziłem trochę czasu na zrozumieniu różnicy, próbując utworzyć
Spring Boot
aplikację, i dlatego po chwili odpowiadam na to ponownie. Poniższy przykład użyciaSpring Boot
wtyczki bardzo mi pomógł:Czego należy obecnie używać:
Co było używane przed Gradle 2.1:
źródło
apply plugin xxx
naplugins { id xxx }
(próbowałem i nie zadziałało)