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

1. Áttekintés

Ebben a cikkben, megnézzük a Gradle Java projekt különböző konfigurációs fájljait. Ezenkívül meglátjuk a tényleges összeállítás részleteit.

Megtekintheti ezt a cikket a Gradle általános bemutatásához.

2. épít.gradle

Tegyük fel, hogy csak egy új Java projektet hozunk létre futtatással gradle init –type java-application. Ez új projektet hagy a következő könyvtárral és fájlszerkezettel:

build.gradle gradle wrapper gradle-wrapper.jar gradle-wrapper.properties gradlew gradlew.bat settings.gradle src main java App.java teszt java AppTest.java

Megfontolhatjuk a épít.gradle fájl, mint a projekt szíve vagy agya. A példánkban kapott fájl így néz ki:

plugins {id 'java' id 'application'} mainClassName = 'App' függőségek {compile 'com.google.guava: guava: 23.0' testCompile 'junit: junit: 4.12'} adattárak {jcenter ()}

Ez egy Groovy-kódból, pontosabban egy Groovy-alapú DSL-ből (tartományspecifikus nyelv) áll az építések leírására. Itt definiálhatjuk függőségeinket, és hozzáadhatunk olyan dolgokat is, mint például a függőség feloldásához használt Maven-tárak.

A Gradle alapvető építőkövei a projektek és feladatok. Ebben az esetben, mivel a Jáva plugint alkalmazzuk, a Java projekt felépítéséhez szükséges összes feladatot implicit módon definiáljuk. Néhány ilyen feladat összeszerelni, jelölje be, épít, befőttes üveg, javadoc, tiszta és még sok más.

Ezeket a feladatokat úgy is felállítják, hogy leírják a Java projekt hasznos függőségi grafikonját, vagyis általában elég a build feladat végrehajtásához, és a Gradle (és a Java plugin) megbizonyosodik arról, hogy minden szükséges feladatot elvégeztek .

Ha további speciális feladatokra van szükségünk, például pl. Egy Docker-kép felépítésére, akkor az a épít.gradle fájl. A feladatok lehető legegyszerűbb meghatározása így néz ki:

helló feladat {doLast {println 'Hello Baeldung!' }}

Futtathatunk egy feladatot úgy, hogy argumentumként adjuk meg a Gradle CLI-nek, így:

$ gradle -q szia Hello Hello Baeldung!

Semmi hasznát nem fogja tenni, de kinyomtatja a „Hello Baeldung!” természetesen.

Többprojektes összeállítás esetén valószínűleg több különbözõ lehet épít.gradle fájlokat, minden projekthez egyet.

A épít.gradle a fájl a Projekt példány, alprojektenként egy Project példánnyal létrehozva. A fenti feladatok, amelyek meghatározhatók a épít.gradle fájlban található Projekt például egy gyűjtemény gyűjteményeként Feladat tárgyakat. Maga a Tasks több műveletből áll, mint rendezett lista.

Az előző példánkban hozzáadtunk egy Groovy záródugót a „Hello Baeldung!” Kinyomtatásához. a lista végére, a doLast (Bezárási művelet) miénken HellóFeladat tárgy. Végrehajtása során Feladat, Gradle mindegyikét végrehajtja Műveletek sorrendben, a Action.execute (T) módszer.

3. beállítások.gradle

Gradle a beállítások.gradle fájl:

rootProject.name = 'gradle-example'

A beállítások.gradle a fájl egy Groovy szkript is.

Szemben a épít.gradle fájl, csak egy beállítások.gradle a fájl Gradle buildenként kerül végrehajtásra. Használhatjuk egy több projektből álló projekt projektjeinek meghatározására.

Emellett regisztrálhatjuk a kódot is egy különféle életciklus-kampó részeként.

A keret megköveteli a beállítások.gradle többprojektes összeállításban, míg opcionális egyprojektes összeállításhoz.

Ezt a fájlt a fájl létrehozása után használják Beállítások a build példánya, futtatva a fájlt ellene és ezáltal konfigurálva. Ez azt jelenti, hogy az alprojekteket definiáljuk beállítások.gradle fájl ilyen:

tartalmazza a 'foo', 'bar'

és Gradle felhívja a void include (String… projectPaths) módszer a Beállítások például a build létrehozásakor.

4. fokozat.tulajdonságok

Gradle nem hoz létre a fokozat.tulajdonságok fájl alapértelmezés szerint. Különböző helyeken tartózkodhat, például a projekt gyökérkönyvtárában, a GRADLE_USER_HOME vagy a -Dgradle.user.home parancssori zászló.

Ez a fájl kulcs-érték párokból áll. Használhatjuk a keretrendszer viselkedésének konfigurálására, és ez egy alternatívája a parancssori zászlók használatának a konfigurációhoz.

Példák a lehetséges kulcsokra:

  • org.gradle.caching = (igaz, hamis)
  • org.gradle.daemon = (igaz, hamis)
  • org.gradle.parallel = (igaz, hamis)
  • org.gradle.logging.level = (csendes, figyelmeztet, életciklus, információ, hibakeresés)

Ezen fájl segítségével tulajdonságokat is hozzáadhat közvetlenül a Projekt objektum, például a tulajdonság a névterével: org.gradle.project.property_to_set

Egy másik felhasználási eset az ilyen JVM-paraméterek megadása:

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

Felhívjuk figyelmét, hogy el kell indítania egy JVM folyamatot a fokozat.tulajdonságok fájl. Ez azt jelenti, hogy ezek a JVM paraméterek csak a külön indított JVM folyamatokat befolyásolják.

5. Az építés dióhéjban

A Gradle build általános életciklusát a következőképpen foglalhatjuk össze, feltételezve, hogy nem démonként futtatjuk:

  • Új JVM folyamatként indul
  • Elemzi a fokozat.tulajdonságok fájlt, és ennek megfelelően konfigurálja a Gradle-t
  • Ezután létrehoz egy Beállítások például az építkezéshez
  • Ezután értékeli a beállítások.gradle irat a Beállítások tárgy
  • Létrehozza a Projektek, a konfigurált alapján Beállítások tárgy
  • Végül mindegyiket végrehajtja épít.gradle fájlt a projektje ellen

6. Következtetés

Láttuk, hogy a különböző Gradle konfigurációs fájlok hogyan teljesítik a különböző fejlesztési célokat. Használhatjuk őket a Gradle felépítésének, valamint magának a Gradle konfigurálásának a projektünk igényei alapján.