gradle | |
---|---|
Type | bygge automatiseringsværktøj [d] |
Skrevet i | Java , Groovy [2] og Kotlin |
Operativ system | på tværs af platforme |
Første udgave | 2007 |
Hardware platform | Java virtuel maskine |
nyeste version | |
Stat | aktiv |
Licens | Apache-licens 2.0 [3] |
Internet side | gradle.org _ |
Mediefiler på Wikimedia Commons |
Gradle er et automatiseret byggesystem bygget på principperne fra Apache Ant og Apache Maven , men som leverer DSL'er i Groovy og Kotlin i stedet for den traditionelle XML -lignende form for projektkonfigurationsrepræsentation.
I modsætning til Apache Maven , som er baseret på projektets livscykluskoncept, og Apache Ant , hvor rækkefølgen af udførelse af opgaver (mål) bestemmes af afhængigheder (afhængig af), bruger Gradle en rettet acyklisk graf til at bestemme rækkefølgen i hvilke opgaver der udføres.
Gradle er designet til udvidelsesmuligheder med flere projekter og understøtter vandfaldsudviklingsmodellen , der bestemmer, hvilke dele af byggetræet, der ikke er ændret, og hvilke opgaver, der afhænger af disse dele, der ikke skal genstartes.
De vigtigste plugins er til at udvikle og implementere Java , Groovy og Scala - applikationer, men der er plugins til andre programmeringssprog : C++ , Swift , Kotlin og også Spring - projekt med Spring Boot.
Den har sin egen Gradle Daemon [4] - en baggrundsproces for at fremskynde opbygningen af projektet.
1. Vi går til downloadsiden Arkiveret 31. oktober 2021 på Wayback Machine og vælger en bekvem metode til installation i dit OS.
2. Indstil miljøet til at arbejde med Gradle ved at indstille miljøvariabler.
3. Bekræft installationen ved at skrive på kommandolinjen for at få versionsnummeret:$ gradle -v или $ gradle -h - для помощи в работе программы.
Lad os se på et eksempelprojekt, der bruger standard Maven - biblioteksstrukturen til kildekoder og ressourcer.
Denne struktur inkluderer følgende mapper:
Alt! Projektet er blevet oprettet og nu kan det åbnes i enhver IDE og arbejde direkte med de genererede mapper og filer.
Lad os finde Gradle build-filen for vores projekt langs stien /app/build.gradle:
plugins { // Anvend applikationsplugin'et for at tilføje understøttelse til at bygge en CLI-applikation i Java. id 'applikation' } repositories { // Brug Maven Central til at løse afhængigheder. mavenCentral () } afhængigheder { // Brug JUnit testramme. testimplementering 'junit:junit:4.13.1' // Denne afhængighed bruges af applikationen. implementering 'com.google.guava:guava:30.0-jre' } ansøgning { // Definer hovedklassen for applikationen. mainClass = 'mainProject.App' }Lad os bygge projektet ved hjælp af gradle build-kommandoen:
> graduering :compileJava :procesressourcer :klasser :krukke :samle :compileTestJava :procesTestResources :testklasser :prøve :kontrollere :bygge BYG SUCCESDen færdige jar-fil vil være i /app/build/libs: app.jar
Ryd op i de indbyggede filer med kommandoen: gradle clean
For at udføre denne jar fra kommandolinjen, lad os tilføje disse linjer til build.gradle -filen (java-versionen og vores hovedklasse):
java { sourceCompatibility = JavaVersion . VERSION_1_8 targetCompatibility = JavaVersion . VERSION_1_8 } krukke { manifest { attributter ( 'Main-Class' : 'mainProject.App' ) } }Vi bygger projektet igen med gradle build-kommandoen -> gå til mappen /app/build/libs og skriv: java -cp . -jar app.jar
Vi skulle se hilsenen "Hej, verden!".
Du kan se alle opgaver gennem kommandoen: gradle opgaver
Du kan se alle afhængigheder af det underordnede app-projekt ved hjælp af kommandoen: gradle app:dependencies
Java - plugin'et emulerer Maven- livscyklusserne som opgaver i en rettet acyklisk afhængighedsgraf for input og output for hver opgave. I dette eksempel afhænger udførelsen af byggeopgaven af resultatet af kontrol- og samleopgaverne . Tjek opgaven afhænger også af test , og montering afhænger af krukke .
Gradle tillader også projekter at bruge en mappestruktur, der adskiller sig fra Maven- konventionen . Følgende eksempel vil overveje et projekt, hvor kildekoden er i mappen src/java i stedet for src/main/java .
bygge.gradle
anvende plugin: 'java' sourceSets { hoved { java { srcDirs = [ 'src/java' ] } } }
For applikationer, der består af moduler, er det praktisk at bruge Gradle- multiprojekttilgangen :
- Udførelse af opgaver på byggestadiet ( test, rapportering, logning osv. / ture til (netværk | tjenester), generelt alt, hvad enhver applikation kan gøre )
- Samling af projektets afhængige biblioteker til opbygning, distribution af adgangsgraden (som adgangsmodifikatorer i programmeringssprog) inde i den eksekverende kode
Monteringsautomatiseringssystemer | |
---|---|