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.