gradleAan de slag met gradle


Opmerkingen

Gradle is een open-source, algemene bouwtool. Het is populair in de Java-community en is de voorkeurstool voor Android .

Gemarkeerde Gradle-functies

  • Declaratieve build-scripts zijn code geschreven in Groovy of Kotlin .
  • Veel kern- en community-plug-ins die een flexibele, op conventie gebaseerde aanpak gebruiken
  • Incrementele builds zodat taken waarvan de afhankelijkheden die niet zijn gewijzigd, niet opnieuw worden uitgevoerd.
  • Ingebouwde afhankelijkheidsresolutie voor Maven en Ivy . Bijgedragen plug-ins bieden afhankelijkheidsresolutie van andere repositories zoals npm .
  • Eersteklas multi-project builds.
  • Integratie met andere build-tools zoals Maven , Ant en anderen.
  • Build-scans waarmee ontwikkelaars beter kunnen samenwerken en Gradle-builds kunnen optimaliseren.

Meer informatie

Als u meer wilt weten over Gradle-functies, kunt u kijken in het overzichtsgedeelte van de Gradle-gebruikershandleiding .

Als je Gradle wilt proberen, kun je hier de handleidingen bekijken . U kunt door een Java-snelstartgids lopen, leren hoe u Gradle voor het eerst gebruikt en migreren vanuit een ander build-hulpmiddel.

Gradle-installatie

Vereisten: Java JDK of JRE geïnstalleerd (versie 7 of hoger voor Gradle 3.x-versie)

Installatie stappen:

  1. Download Gradle-distributie van de officiële website
  2. Pak de ZIP uit
  3. Voeg de omgevingsvariabele GRADLE_HOME . Deze variabele moet verwijzen naar de uitgepakte bestanden uit de vorige stap.
  4. Voeg GRADLE_HOME/bin aan uw omgevingsvariabele PATH , zodat u GRADLE_HOME/bin kunt uitvoeren vanaf de opdrachtregelinterface (CLI)
  5. Test uw Gradle-installatie door gradle -v in de CLI te typen. De uitvoer moet de geïnstalleerde Gradle-versie en de huidige Gradle-configuratiegegevens bevatten

Meer informatie is te vinden in de officiële gebruikershandleiding

Hallo Wereld

Gradle-taken kunnen worden geschreven met Groovy-code vanuit een build.gradle-bestand van een project. Deze taken kunnen vervolgens worden uitgevoerd met > gradle [taskname] op de terminal of door de taak uit te voeren vanuit een IDE zoals Eclipse.

Om het Hello World-voorbeeld in gradle te maken, moeten we een taak definiëren die een tekenreeks naar de console afdrukt met Groovy. We zullen Groovy's printLn om de methode System.out.printLn Java aan te roepen om de tekst naar de console af te drukken.

build.gradle

task hello {
    doLast {
        println 'Hello world!'
    }
}
 

We kunnen deze taak vervolgens uitvoeren met > gradle hello of > gradle -q hello . De -q wordt gebruikt om gradle-logberichten te onderdrukken, zodat alleen de uitvoer van de taak wordt getoond.

Uitgang van > gradle -q hello :

> gradle -q hello
Hello world!
 

Installeer Gradle-plug-in voor Eclipse

Hier zijn de stappen die nodig zijn om de Gradle-plug-in in Eclipse te installeren:

  1. Open Eclipse en ga naar Help -> Eclipse Marketplace
  2. Voer in de zoekbalk buildship in en druk op enter
  3. Selecteer "Buildship Gradle Integration 1.0" en klik op Installeren
  4. Klik in het volgende venster op Bevestigen
  5. Accepteer vervolgens de voorwaarden en licentieovereenkomst en klik vervolgens op Voltooien
  6. Na installatie moet Eclipse opnieuw opstarten, klik op Ja

Installatie met homebrew op OS X / macOS

Gebruikers van homebrew kunnen gradle installeren door te rennen

brew install gradle
 

Installeren met SdkMan

Gebruikers van SdkMan kunnen Gradle installeren door te draaien:

sdk install gradle
 

Installeer specifieke versie

sdk list gradle
sdk install gradle 2.14
 

Schakel versies

sdk use gradle 2.12
 

Meer over taken

Allereerst: operator << (leftShift) is het equivalent van doLast {closure} . Vanaf gradle 3.2 is het verouderd . Alle taakcode schrijft in een build.gradle .

Een taak vertegenwoordigt een atomair stuk werk dat een build uitvoert. Dit kan een verzameling van klassen zijn, een JAR maken, Javadoc genereren of sommige archieven naar een repository publiceren.

Gradle ondersteunt twee grote soorten taken: eenvoudig en verbeterd.

Laten we enkele taakdefinitiestijlen bekijken:

task hello {
    doLast{
       //some code
    }    
}
 

Of de:

task(hello) {
    doLast{
       //some code
    }    
}
 

Deze taken hierboven zijn equivalent. U kunt ook enkele extensies voor de taak dependsOn , zoals: dependsOn , mustRunAfter , type etc. U kunt de taak uitbreiden door acties toe te voegen na mustRunAfter , zoals deze:

task hello {
    doLast{
       println 'Inside task'
    }    
}
hello.doLast {
    println 'added code'
}
 

Wanneer we dit uitvoeren, hebben we:

> gradle -q hello
    Inside task
    added code
 

Vragen over taakafhankelijkheden en ordening worden hier onderzocht

Laten we het hebben over twee grote soorten taken.

Gemakkelijk:

Taken die we definiëren met een actiesluiting:

    task hello {
        doLast{
        println "Hello from a simple task"
        }
    }
 

Enhanced

Verbeterd is het een taak met een vooraf geconfigureerd gedrag. Alle plug-ins die u in uw project gebruikt, zijn de uitgebreide of de verbeterde taken . Laten we de onze maken en u zult begrijpen hoe het werkt:

task hello(type: HelloTask)

class HelloTask extends DefaultTask {
    @TaskAction
    def greet() {
        println 'hello from our custom task'
    }
}
 

Ook kunnen we parameters als volgt aan onze taak doorgeven:

class HelloTask extends DefaultTask {
    String greeting = "This is default greeting"
    @TaskAction
    def greet() {
        println greeting
    }
}
 

En vanaf nu kunnen we onze taak als volgt herschrijven:

   //this is our old task definition style
task oldHello(type: HelloTask) 
   //this is our new task definition style     
task newHello(type: HelloTask) {
    greeting = 'This is not default greeting!'
}
 

Wanneer we dit uitvoeren, hebben we:

> gradle -q oldHello
This is default greeting

> gradle -q newHello
This is not default greeting!
 

Alle vragen over de ontwikkeling van gradle-plug-ins op de officiële site