Gradle

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 augusti 2019; kontroller kräver 30 redigeringar .
gradle
Sorts bygga automationsverktyg [d]
Skrivet i Java , Groovy [2] och Kotlin
Operativ system plattformsoberoende
Första upplagan 2007
Hårdvaruplattform Java Virtual Machine
senaste versionen
stat aktiva
Licens Apache License 2.0 [3]
Hemsida gradle.org
 Mediafiler på Wikimedia Commons

Gradle  är ett automatiserat byggsystem byggt på principerna för Apache Ant och Apache Maven , men tillhandahåller DSL i Groovy och Kotlin istället för den traditionella XML -liknande formen av projektkonfigurationsrepresentation.

Till skillnad från Apache Maven , som är baserad på projektets livscykelkoncept, och Apache Ant , där ordningen för utförandet av uppgifter (mål) bestäms av beroenden (beroende på), använder Gradle en riktad acyklisk graf för att bestämma ordningen i vilka uppgifter som utförs.

Gradle designades för utökningsbara flerprojektsbyggen och stöder vattenfallsutvecklingsmodellen , som avgör vilka delar av byggträdet som inte har ändrats och vilka uppgifter som är beroende av dessa delar som inte behöver startas om.

De huvudsakliga plugins är för att utveckla och distribuera Java , Groovy och Scala- applikationer, men det finns plugins för andra programmeringsspråk : C++ , Swift , Kotlin och även Spring- projekt med Spring Boot.

Den har sin egen Gradle Daemon [4] - en bakgrundsprocess för att påskynda uppbyggnaden av projektet.

Installerar Gradle

1. Vi går till nedladdningssidan Arkiverad 31 oktober 2021 på Wayback Machine och väljer en bekväm metod för installation i ditt operativsystem.

2. Ställ in miljön för att arbeta med Gradle genom att ställa in miljövariabler.

3. Verifiera installationen genom att skriva på kommandoraden för att få versionsnumret:$ gradle -v или $ gradle -h - для помощи в работе программы.

Exempelprojekt för Java

Låt oss titta på ett exempelprojekt som använder Mavens standardkatalogstruktur för källkoder och resurser.

Denna struktur innehåller följande kataloger:

  1. Skapa dessa java-projektfiler genom att köra kommandot i projektkatalogen: gradle init
  2. Välj "Projekttyp" : applikation - ange 2
  3. Välj "Projektspråk": java - skriv in 3
  4. Gemensamt projekt eller delat - ange 1
  5. Välj "Språk DSL": groovy - ange 1
  6. Välj "projekttestramverk" : JUnit 4 - ange 1
  7. Ange namnet på projektet och paketet (till exempel: mainProject).

Allt! Projektet har skapats och nu kan det öppnas i vilken IDE som helst och arbeta direkt med de genererade katalogerna och filerna.

Låt oss hitta Gradle-byggfilen för vårt projekt längs vägen /app/build.gradle:

plugins { // Använd applikationsplugin för att lägga till stöd för att bygga en CLI-applikation i Java. id 'applikation' } repositories { // Använd Maven Central för att lösa beroenden. mavenCentral () } beroenden { // Använd JUnit-testramverket. testImplementation 'junit:junit:4.13.1' // Detta beroende används av applikationen. implementering 'com.google.guava:guava:30.0-jre' } ansökan { // Definiera huvudklassen för applikationen. mainClass = 'mainProject.App' }

Låt oss bygga projektet med kommandot gradle build:

> gradig byggnad :compileJava :processResources :klasser :burk :montera :compileTestJava :processTestResources :testklasser :testa :kolla upp :bygga BYGGA FRAMGÅNG

Den färdiga jar-filen kommer att finnas i /app/build/libs: app.jar

Rensa upp de inbyggda filerna med kommandot: gradle clean

För att köra denna jar från kommandoraden, låt oss lägga till dessa rader i filen build.gradle (javaversionen och vår huvudklass):

java { sourceCompatibility = JavaVersion . VERSION_1_8 targetCompatibility = JavaVersion . VERSION_1_8 } burk { manifest { attribut ( 'Main-Class' : 'mainProject.App' ) } }

Vi bygger projektet igen med kommandot gradle build -> gå till katalogen /app/build/libs och skriv: java -cp . -jar app.jar

Vi borde se hälsningen "Hello, World!".

Livscykel för uppgifter i Gradle

Du kan se alla uppgifter genom kommandot: gradle tasks

Du kan se alla beroenden för barnappsprojektet med kommandot: gradle app:dependenties

Java -pluginen emulerar Maven- livscyklerna som uppgifter i en riktad acyklisk beroendegraf för ingångarna och utgångarna för varje uppgift. I det här exemplet beror utförandet av bygguppgiften på resultatet av kontroll- och monteringsuppgifterna . Kontrollera också uppgiften beror på testet , och monteringen beror på burken .

Gradle tillåter också projekt att använda en katalogstruktur som skiljer sig från Maven- konventionen . Följande exempel kommer att överväga ett projekt där källkoden finns i katalogen src/java istället för src/main/java .

bygga.gradle

tillämpa plugin: 'java' sourceSets { huvud { java { srcDirs = [ 'src/java' ] } } }


Multi-projekt montering

För applikationer som består av moduler är det bekvämt att använda Gradle - multiprojektmetoden:

  1. Varje modul finns i sin egen separata katalog.
  2. Varje modul kan innehålla underordnade moduler, som kommer att finnas i kapslade kataloger.
  3. Beskrivningen av multiprojektstrukturen görs i settings.gradle i projektets rotkatalog.
  4. Det finns en build.gradle i projektets rotkatalog som kan anpassa sig själv och underordnade moduler.
  5. Varje underordnad modul kan ha samma två filer för att konfigurera sig själv och dess underordnade moduler.
  6. Detta tillvägagångssätt låter dig enkelt köra uppgifter för specifika moduler eller hela projektet som helhet.

Huvuduppgifter

- Utföra uppgifter i byggskedet ( testning, rapportering, loggning, etc. / resor till (nätverk | tjänster), i allmänhet allt som alla program kan göra )

- Sammansättning av beroende bibliotek i projektet för uppbyggnad, distribution av åtkomstgraden (som åtkomstmodifierare i programmeringsspråk) inuti den exekverande koden

Huvudstrukturen för filen build.gradle

app / bygga . gradle . kts // Block ansvarig för att ansluta plugins plugins { id ( "org.jetbrains.kotlin.jvm" ) version "1.4.31" Ansökan } // Huvudarkiv från vilka plugins laddas ner repositories { mavenCentral () } // Beroenden för ditt projekt beroenden { implementering ( plattform ( "org.jetbrains.kotlin:kotlin-bom" )) // ett exempel på att lägga till en plugin till ditt projekt implementering ( "org.jetbrains.kotlin:kotlin-stdlib-jdk8" ) implementering ( "com.google.guava:guava:30.1-jre" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test" ) testImplementation ( "org.jetbrains.kotlin:kotlin-test-junit" ) } // Huvudklass för att köra programmet ansökan { huvudklass . set ( "demo.AppKt" ) }

Se även

Litteratur

  • Muschko, B. och Dockter, H. Gradle i aktion. - Manning Publications Company, 2013. - 456 sid. — ISBN 9781617291302 .
  • Berglund, T. Gradle Beyond the Basics. - O'Reilly Media, 2013. - 80 sid. — ISBN 9781449373825 .
  • Berglund, T. och McCullough, M. Bygga och testa med Gradle. - O'Reilly Media, 2011. - 110 sid. — ISBN 9781449304638 .
  • Kousen, K. Gradle för Android. - O'Reilly Media, Incorporated, 2015. - 120 sid. — ISBN 9781491947029 .
  • Ikkink, H.K. Gradle effektiv implementeringsguide . - Packt Publishing, 2012. - 350 sid. — ISBN 9781849518116 .

Anteckningar

  1. https://github.com/gradle/gradle/releases/tag/v7.5.1
  2. Gradle Open Source Project på Open Hub: Languages-sidan - 2006.
  3. Gradle Open Source Project på Open Hub: Licenses Page - 2006.
  4. https://docs.gradle.org/current/userguide/gradle_daemon.html Arkiverad 1 november 2021 på Wayback Machine