Opbygning af en Java-applikation med Gradle

1. Oversigt

Denne vejledning giver en praktisk guide til, hvordan man bygger et Java-baseret projekt ved hjælp af Gradle.

Vi forklarer trinene til manuel oprettelse af en projektstruktur, udførelse af den indledende konfiguration og tilføjelse af Java-plugin og JUnit-afhængighed. Derefter bygger vi og kører applikationen.

Endelig i det sidste afsnit giver vi et eksempel på, hvordan du gør dette med Gradle Build Init Plugin. Nogle grundlæggende introduktioner kan også findes i artiklen Introduktion til Gradle.

2. Java-projektstruktur

Før vi manuelt opretter et Java-projekt og forbereder det til build, skal vi installere Gradle.

Lad os starte med at oprette en projektmappe ved hjælp af PowerShell-konsollen med navn gradle-medarbejder-app:

> mkdir gradle-medarbejder-app

Lad os derefter navigere til projektmappen og oprette undermapper:

> mkdir src / main / java / medarbejder

Den resulterende output vises:

Directory: D: \ gradle-medarbejder-app \ src \ main \ java Mode LastWriteTime Længde Navn ---- ------------- ------ ---- d-- --- 20-10-2020 12:14 medarbejder

Lad os oprette to klasser inden for projektstrukturen ovenfor. Den ene er enkel Medarbejder klasse med data som navn, e-mail-adresse og fødselsår:

offentlig klassemedarbejder {Strenge navn; String emailAddress; int yearOfBirth; }

Det andet er det vigtigste Medarbejder-app klasse, der udskriver Medarbejder data:

offentlig klasse EmployeeApp {public static void main (String [] args) {Medarbejdermedarbejder = ny medarbejder (); medarbejder.navn = "John"; medarbejder.emailAddress = "[e-mail-beskyttet]"; medarbejder.årFødsel = 1978; System.out.println ("Navn:" + medarbejder.navn); System.out.println ("E-mail-adresse:" + medarbejder.emailAddress); System.out.println ("Fødselsår:" + medarbejder.årFødsel); }}

3. Byg et Java-projekt

Ved siden afbygge vores Java-projekt, opretter vi en build.gradle konfigurationsfil i projektets rodmappe.

Følgende er i PowerShell-kommandolinjen:

Ekko> build.gradle

Vi springer over det næste trin relateret til inputparametrene:

cmdlet Skriv-output ved kommandorørledningsposition 1 Forsyningsværdier for følgende parametre: InputObject [0]:

For at en bygning skal lykkes, skal vi tilføje Application Plugin:

plugins {id 'applikation'}

Derefter anvender vi et applikationsplugin og tilføj et fuldt kvalificeret navn på hovedklassen:

anvend plugin: 'application' mainClassName = 'medarbejder.EmployeeApp'

Hvert projekt består af opgaver. En opgave repræsenterer et stykke arbejde, som en build udfører, såsom kompilering af kildekoden.

For eksempel kan vi tilføje en opgave til konfigurationsfilen, der udskriver en besked om den afsluttede projektkonfiguration:

println 'Dette udføres under konfigurationsfasen' opgave konfigureret {println 'Projektet er konfigureret'}

Som regel, gradle build er den primære opgave og den mest anvendte. Denne opgave kompilerer, tester og samler koden i en JAR-fil. Bygningen startes ved at skrive:

> gradle build 

Udfør kommandoen ovenfor for at output:

> Konfigurer projekt: Dette udføres under konfigurationsfasen Projektet er konfigureret BUILD SUCCESSFUL i 1s 2 handlingsopgaver: 2 up-to-date

For at se build-resultaterne, lad os se på build-mappen, der indeholder undermapper:klasser, distributioner, libs og rapporter. At skrive Træ / F giver strukturen i buildmappen:

├───build │ ├───klasser │ │ └─── Java └───test │ │ └───medarbejder │ │ EmployeeAppTest.class │ │ │ ────distribution │ │ gradle-employee-app.tar │ │ gradle-employee-app.zip │ ├───ibs │ gradl-medarbejder-app.jar │ │ │ ├────rapporter │ └ └───tests │ └ └─── test │ │ │ index.html │ │ │ ─ │ ├ ├ ─ ─ ─ ─ │ │ │ medarbejder .MedarbejderAppTest.html

Som du kan se, er klasser undermappe indeholder to kompilerede .klasse filer, vi tidligere har oprettet. Det distributioner undermappe indeholder en arkiveret version af applikationsburkpakken. Og libs holder jar-filen i vores ansøgning.

Normalt, jeg n rapporter, der er filer, der genereres, når JUnit-tests køres.

Nu er alt klar til at køre Java-projektet ved at skrive gradløb.Resultatet af eksekvering af applikationen ved afslutning:

> Konfigurer projekt: Dette udføres under konfigurationsfasen Projektet er konfigureret> Opgave: kør Navn: John E-mail-adresse: [email protected] Fødselsår: 1978 BYGG LYKTIGT i 1s 2 handlingsopgaver: 1 udført, 1 up-to-date 

3.1. Byg med Gradle Wrapper

Gradle Wrapper er et script, der påberåber sig en erklæret version af Gradle.

Lad os først definere en indpakningsopgave i build.gradle fil:

opgaveindpakning (type: Wrapper) {gradleVersion = '5.3.1'}

Lad os køre denne opgave ved hjælp af gradleindpakning fra Power Shell:

> Konfigurer projekt: Dette udføres under konfigurationsfasen Projektet er konfigureret BUILD SUCCESSFUL i 1s 1 handlingsbar opgave: 1 udført

Flere filer oprettes under projektmappen, herunder filerne under / gradle / indpakning Beliggenhed:

│ gradlew │ gradlew.bat │ ├─── Gradle │ └─── wrapper │ gradle-wrapper.jar │ gradle-wrapper.properties
  • gradlew: shell-scriptet, der bruges til at oprette Gradle-opgaver på Linux
  • gradlew.bat: a .flagermus script, som Windows-brugere opretter Gradle-opgaver
  • gradle-wrapper.jar: en krukke, der kan udføres af vores applikation
  • gradle-wrapper.egenskaber: egenskabsfil til konfiguration af indpakningen

4. Tilføj Java-afhængigheder, og kør en simpel test

For det første skal vi i vores konfigurationsfil indstille et eksternt lager, hvorfra vi downloader afhængighedsglas. Oftest er disse arkiver enten mavenCentral () eller jcenter (). Lad os vælge den anden:

opbevaringssteder {jcenter ()}

Når vores arkiver er oprettet, kan vi derefter specificere, hvilke afhængigheder der skal downloades. I dette eksempel tilføjer vi Apache Commons og JUnit-biblioteket. For at implementere skal du tilføje testImplementering og testRuntime dele i afhængighedskonfigurationen.

Det bygger på en ekstra testblok:

afhængigheder {kompilér gruppe: 'org.apache.commons', navn: 'commons-lang3', version: '3.10' testImplementation ('junit: junit: 4.13') testRuntime ('junit: junit: 4.13')} test {useJUnit ()}

Når det er gjort, lad os prøve JUnit's arbejde på en simpel test. Naviger til src mappe og lav undermapperne til testen:

src> mkdir test / java / medarbejder

Lad os oprette inden for den sidste undermappe MedarbejderAppTest.java:

offentlig klasse EmployeeAppTest {@Test public void testData () {Medarbejder testEmp = this.getEmployeeTest (); assertEquals (testEmp.name, "John"); assertEquals (testEmp.emailAddress, "[email protected]"); assertEquals (testEmp.yearOfBirth, 1978); } privat medarbejder getEmployeeTest () {Medarbejdermedarbejder = ny medarbejder (); medarbejder.navn = "John"; medarbejder.emailAddress = "[e-mail-beskyttet]"; medarbejder.årFødsel = 1978; tilbagevendende medarbejder }}

Svarende til før, lad os køre en gradle ren test fra kommandolinjen, og testen skal bestå uden problemer.

5. Java-projektinitialisering ved hjælp af Gradle

I dette afsnit forklarer vi trinene til oprettelse og opbygning af en Java-applikation, som vi hidtil har gennemgået. Forskellen er, at vi denne gang arbejder ved hjælp af Gradle Build Init Plugin.

Opret en ny projektmappe, og navngiv den gradle-java-eksempel. Skift derefter til den tomme projektmappe, og kør init-scriptet:

> gradvis init

Gradle vil stille os få spørgsmål og tilbyde muligheder for at oprette et projekt. Det første spørgsmål er, hvilken type projekt vi vil generere:

Vælg den type projekt, der skal genereres: 1: grundlæggende 2: cpp-applikation 3: cpp-bibliotek 4: groovy-applikation 5: groovy-bibliotek 6: java-applikation 7: java-bibliotek 8: kotlin-applikation 9: kotlin-bibliotek 10: scala-bibliotek Vælg build script DSL: 1: groovy 2: kotlin Indtast valg [1..10] 6

Vælg mulighed 6 for projekttypen og derefter den første mulighed (groovy) til build-scriptet.

Derefter vises en liste med spørgsmål:

Vælg testramme: 1: junit 2: testng 3: spock Indtast valg (standard: junit) [1..3] 1 Projektnavn (standard: gradle-java-eksempel): Kildepakke (standard: gradle.java.example) : medarbejder BYGGET FULDT i 57m 45s 2 handlingsopgaver: 2 udført

Her vælger vi den første mulighed, junit, til testrammen. Vælg standardnavnet for vores projekt, og skriv "medarbejder" som navnet på kildepakken.

For at se den komplette katalogstruktur inden for / src projektmapper, lad os skrive Træ / F i Power Shell:

├───mest │ ├───java │ │ └───medarbejder │ │ App.java │ │ │ └─── ressourcer └───test ├───java │ └───medarbejder │ AppTest. java │ └───ressourcer

Endelig, hvis vi bygger projektet med gradløb, vi får "Hej Verden" ved udgang:

> Opgave: kør Hello world. BYG SUCCESFULD i 1s 2 handlingsopgaver: 1 udført, 1 up-to-date

6. Konklusion

I denne artikel har vi præsenteret to måder at oprette og opbygge en Java-applikation ved hjælp af Gradle. Faktum er, at vi udførte det manuelle arbejde, og det tog tid at starte kompilering og opbygning af applikationer fra kommandolinjen. I dette tilfælde skal vi være opmærksomme på importen af ​​nogle nødvendige pakker og klasser, hvis applikationen bruger flere biblioteker.

På den anden side er Gradle i det script har funktioner, der genererer et let skelet af vores projekt samt nogle af de konfigurationsfiler, der er knyttet til Gradle.

Kildekoden til denne artikel er tilgængelig på GitHub.