Lag et Java og Kotlin-prosjekt med Maven

1. Introduksjon

I denne raske opplæringen vil vi se hvordan du setter opp en Maven prosjekthåndtering av begge deler Java og Kotlin kilder.

Vi oppretter først et prosjekt for Java bare kilder. Vi legger deretter til kotlin-maven-plugin å håndtere Kotlin også.

Og til slutt legger vi til noen dummy-klasser, pakker applikasjonen vår og tester om alt fungerer som forventet.

2. Lag et Java-prosjekt med Maven

Først av alt, la oss lage en grei Java prosjekt med Maven:

maven-java-kotlin jar 1.8 org.apache.maven.plugins maven-compiler-plugin 3.1 $ {java.version} $ {java.version} 

Dette pom filen inneholder alt vi trenger å kompilere Java kilder og pakke dem inn i en krukke fil.

3. Legg til Kotlin Maven-plugin

Nå må vi stille inn dette pom filen slik at den kan håndtere Kotlin kilder også.

La oss først legge til kotlin.versjon til våre eiendommer ogkotlin-stdlib-jdk8 til våre avhengigheter. På denne måten får vi tilgang til Kotlin funksjoner:

 1.8 1.2.51 org.jetbrains.kotlin kotlin-stdlib-jdk8 $ {kotlin.version} 

Deretter, vi trenger å legge til kotlin-maven-plugin til vår Maven plugins.

Vi konfigurerer den til å håndtere begge deler kompilere og test-kompilere mål og fortelle hvor du skal finne kildene våre.

Etter konvensjon holder vi Java og Kotlin kilder i forskjellige kataloger, selv om vi kunne sette dem alle på samme måte:

 kotlin-maven-plugin org.jetbrains.kotlin $ {kotlin.version} kompilere kompilere $ {project.basedir} / src / main / kotlin $ {project.basedir} / src / main / java test-kompilere test-kompilere $ { project.basedir} / src / test / kotlin $ {project.basedir} / src / test / java 

Dette er nesten slutten av konfigurasjonen. Vi må tilpasse maven-compiler-plugin konfigurasjon som vi trenger Kotlin kilder som skal utarbeides før Java kilder.

Ofte, Maven plugins-henrettelser skjer i henhold til erklæringsrekkefølgen. Så vi burde plassere maven-compiler-plugin etter kotlin-maven-plugin. Men førstnevnte har to spesifikke henrettelser som utføres før alt annet i fasene: standardkompilering og standard-testKompilere.

Vi må deaktivere dem og aktivere dem java-kompilere og java-test-kompilere i stedet for å sikre det kotlin-maven-plugin henrettelse vil skje før maven-compiler-plugin:

 org.apache.maven.plugins maven-compiler-plugin 3.1 $ {java.version} $ {java.version} standard-kompilere ingen standard-testKompilere ingen Java-kompilere kompilere kompilere Java-test-kompilere test-kompilere testKompilere 

Vi kan se at standard henrettelser er deaktivert ved hjelp av fase ingen, og Java-spesifikke henrettelser er bundet til kompilere og test-kompilere faser.

4. Si 'Hello World!' Med både Java og Kotlin

Nå som vi har satt opp alt riktig, la oss si hei til verden ... fra begge Java og Kotlin.

For å gjøre det, la oss lage en applikasjon klasse med en hoved() metode. Denne metoden vil enten kalle a Java eller a Kotlin klasse i henhold til sitt første argument:

public class Application {static String JAVA = "java"; statisk streng KOTLIN = "kotlin"; public static void main (String [] args) {String språk = args [0]; bytte (språk) {case JAVA: new JavaService (). sayHello (); gå i stykker; sak KOTLIN: ny KotlinService (). siHello (); gå i stykker; standard: // Gjør ingenting pause; }}}

De JavaService og KotlinService klasser sier ganske enkelt “Hello World!”:

offentlig klasse JavaService {public void sayHello () {System.out.println ("Java sier 'Hello World!'"); }}
klasse KotlinService {fun sayHello () {System.out.println ("Kotlin sier 'Hello World!'")}}

Vi kan nå kompilere og pakke søknaden vår ved å ringe mvn-pakke kommando.

La oss teste den produserte glasset ved å kjøre følgende kommandoer i en terminal:

java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "java"

Som vi kan se kaller dette JavaService klasse som skriver ut til konsollen “Java sier‘ Hello World! ’”.

java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "kotlin"

Og denne kaller KotlinService klasse, som trykker "Kotlin sier 'Hello World!'".

5. Konklusjon

I denne artikkelen fokuserte vi på hvordan du lager et Maven-prosjekt som håndterer begge deler Java og Kotlin kilder, kompilere og pakke dem inn i en krukke.

Hele koden kan undersøkes på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found