Gradle: build.gradle vs. settings.gradle vs. gradle.properties

1. Pregled

U ovom članku, pogledat ćemo različite konfiguracijske datoteke projekta Gradle Java. Također, vidjet ćemo detalje stvarne gradnje.

U ovom članku možete potražiti općeniti uvod u Gradle.

2. graditi.gradle

Pretpostavimo da upravo izvodimo novi Java projekt gradle init –tip java-aplikacije. Ovo će nam ostaviti novi projekt sa slijedećom strukturom direktorija i datoteke:

build.gradle gradle wrapper gradle-wrapper.jar gradle-wrapper.properties gradlew gradlew.bat settings.gradle src glavna java App.java test java AppTest.java

Možemo razmotriti graditi.gradle datoteka kao srce ili mozak projekta. Dobivena datoteka za naš primjer izgleda ovako:

dodaci {id 'java' id 'application'} mainClassName = 'App' ovisnosti {compile 'com.google.guava: guava: 23.0' testCompile 'junit: junit: 4.12'} spremišta {jcenter ()}

Sastoji se od Groovy koda, ili preciznije, od Groovyja temeljenog DSL-a (jezik specifičan za domenu) za opisivanje gradnji. Ovdje možemo definirati svoje ovisnosti i također dodati stvari poput Maven spremišta koja se koriste za rješavanje ovisnosti.

Temeljni gradivni elementi Gradla su projekti i zadaci. U ovom slučaju, od Java dodatak se primjenjuje, svi potrebni zadaci za izgradnju Java projekta definiraju se implicitno. Neki od tih zadataka jesu sastaviti, ček, izgraditi, staklenka, javadoc, čist i još mnogo toga.

Ovi su zadaci također postavljeni na takav način da opisuju koristan grafikon ovisnosti za Java projekt, što znači da je općenito dovoljno izvršiti zadatak gradnje i Gradle (i dodatak Java) pobrinut će se da se izvrše svi potrebni zadaci .

Ako su nam potrebni dodatni specijalizirani zadaci, poput, primjerice, izgradnje Dockerove slike, to bi također ušlo u graditi.gradle datoteka. Najlakša moguća definicija zadataka izgleda ovako:

zadatak pozdrav {doLast {println 'Pozdrav Baeldung!' }}

Zadatak možemo pokrenuti tako da ga odredimo kao argument za CLI Gradle ovako:

$ gradle -q zdravo Zdravo Baeldung!

To neće učiniti ništa korisno, ali ispišite "Hello Baeldung!" naravno.

U slučaju izrade više projekata, vjerojatno bismo imali više različitih graditi.gradle datoteke, po jedna za svaki projekt.

The graditi.gradle datoteka se izvršava protiv Projekt instance, s jednom instancom Projekta koja se kreira po potprojektu. Gornji zadaci, koji se mogu definirati u graditi.gradle datoteke, nalaze se u Projekt primjer kao dio zbirke Zadatak predmeta. Sami zadaci sastoje se od više radnji kao poredani popis.

U našem prethodnom primjeru dodali smo Groovy zatvarač za ispis "Hello Baeldung!" do kraja ovog popisa pozivom na doLast (akcija zatvaranja) na naš zdravoZadatak objekt. Tijekom izvršenja Zadatak, Gradle izvršava svaki svoj Akcije redom, pozivanjem Action.execute (T) metoda.

3. postavke.gradle

Gradle također generira a postavke.gradle datoteka:

rootProject.name = 'primjer gradle'

The postavke.gradle datoteka je i Groovyjeva skripta.

Za razliku od graditi.gradle datoteka, samo jedna postavke.gradle datoteka se izvršava po gradnji Gradle. Pomoću njega možemo definirati projekte izrade više projekata.

Osim toga, također možemo registrirati kod kao dio različitih kuka životnog ciklusa gradnje.

Okvir zahtijeva postojanje postavke.gradle u gradnji s više projekata, dok je neobavezna za izradu s jednim projektom.

Ova se datoteka koristi nakon stvaranja Postavke instanci gradnje, izvršavanjem datoteke protiv nje i time konfiguriranjem. To znači da definiramo potprojekte u našem postavke.gradle datoteka poput ove:

uključuju "foo", "bar"

a Gradle zove void include (String ... projectPaths) metoda na Postavke primjer prilikom izrade gradnje.

4. gradle.svojstva

Gradle ne stvara gradle.svojstva datoteka prema zadanim postavkama. Može se nalaziti na različitim lokacijama, na primjer u korijenskom direktoriju projekta, unutar GRADLE_USER_HOME ili na mjestu navedenom u -Dgradle.user.home zastava naredbenog retka.

Ova se datoteka sastoji od parova ključ / vrijednost. Pomoću njega možemo konfigurirati ponašanje samog okvira i alternativa je korištenju zastavica naredbenog retka za konfiguraciju.

Primjeri mogućih ključeva su:

  • org.gradle.caching = (točno, netačno)
  • org.gradle.daemon = (točno, netačno)
  • org.gradle.parallel = (true, false)
  • org.gradle.logging.level = (tiho, upozorenje, životni ciklus, informacije, otklanjanje pogrešaka)

Također, ovu datoteku možete koristiti za dodavanje svojstava izravno u Projekt objekt, npr. svojstvo sa svojim prostorom imena: org.gradle.project.property_to_set

Drugi slučaj upotrebe je specificiranje JVM parametara poput ovog:

org.gradle.jvmargs = -Xmx2g -XX: MaxPermSize = 256m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

Imajte na umu da mora pokrenuti JVM postupak za raščlanjivanje gradle.svojstva datoteka. To znači da ovi JVM parametri utječu samo na zasebno pokrenute JVM procese.

5. Graditi u malom

Opći životni ciklus gradnje Gradle možemo sažeti na sljedeći način, pod pretpostavkom da ga ne pokrećemo kao demon:

  • Pokreće se kao novi JVM postupak
  • Analizira gradle.svojstva datoteku i prema tome konfigurira Gradle
  • Zatim stvara a Postavke primjer za izgradnju
  • Zatim procjenjuje postavke.gradle datoteka protiv Postavke objekt
  • Stvara hijerarhiju Projekti, na temelju konfiguriranog Postavke objekt
  • Konačno, izvršava svaki graditi.gradle datoteka protiv svog projekta

6. Zaključak

Vidjeli smo kako različite konfiguracijske datoteke Gradle ispunjavaju različite razvojne svrhe. Pomoću njih možemo konfigurirati gradnju Gradle, kao i sam Gradle, na temelju potreba našeg projekta.