Opret et Java- og Kotlin-projekt med Maven

1. Introduktion

I denne hurtige vejledning ser vi, hvordan du opretter en Maven projekthåndtering af begge dele Java og Kotlin kilder.

Vi opretter først et projekt til Java kun kilder. Vi tilføjer derefter kotlin-maven-plugin at håndtere Kotlin såvel.

Og endelig tilføjer vi nogle dummy-klasser, pakker vores applikation og tester, om alt fungerer som forventet.

2. Opret et Java-projekt med Maven

Først og fremmest, lad os skabe en ligetil Java projekt med Maven:

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

Det her pom filen indeholder alt, hvad vi har brug for at kompilere Java kilder og pakke dem ind i en krukke fil.

3. Tilføj Kotlin Maven Plugin

Nu er vi nødt til at indstille dette pom fil, så den kan håndtere Kotlin kilder også.

Lad os først tilføje kotlin.version til vores ejendomme ogkotlin-stdlib-jdk8 til vores afhængigheder. På denne måde har vi adgang til Kotlin funktioner:

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

Derefter, vi skal tilføje kotlin-maven-plugin til vores Maven plugins.

Vi konfigurerer det til at håndtere begge dele udarbejde og test-kompilere mål og fortælle det, hvor de kan finde vores kilder.

Efter konvention holder vi Java og Kotlin kilder i forskellige kataloger, selvom vi kunne sætte dem alle i det samme:

 kotlin-maven-plugin org.jetbrains.kotlin $ {kotlin.version} kompilér kompilering $ {project.basedir} / src / main / kotlin $ {project.basedir} / src / main / java test-kompilering test-kompilering $ { project.basedir} / src / test / kotlin $ {project.basedir} / src / test / java 

Dette er næsten slutningen af ​​konfigurationen. Vi er nødt til tilpasse maven-compiler-plugin konfiguration, som vi har brug for Kotlin kilder, der skal udarbejdes før Java kilder.

Ofte, Maven plugins-henrettelser sker i henhold til erklæringsordren. Så vi skal placere maven-compiler-plugin efter kotlin-maven-plugin. Men førstnævnte har to specifikke henrettelser, der udføres før alt andet i faser: standard-kompilering og standard-testCompile.

Vi er nødt til at deaktivere dem og aktivere dem java-kompilering og java-test-kompilering i stedet for at sikre det kotlin-maven-plugin henrettelse vil ske 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-kompil kompil kompilere Java-test-kompilere test-kompilere testCompile 

Vi kan se, at standardkørsler er deaktiveret ved hjælp af fase ingenog Java-specifikke henrettelser er bundet til udarbejde og test-kompilere faser.

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

Nu hvor vi korrekt har sat alt op, lad os sige hej til verden ... fra begge Java og Kotlin.

Lad os oprette en Ansøgning klasse med en hoved () metode. Denne metode vil enten kalde en Java eller a Kotlin klasse ifølge sit første argument:

public class Application {static String JAVA = "java"; statisk streng KOTLIN = "kotlin"; public static void main (String [] args) {String sprog = args [0]; switch (sprog) {case JAVA: ny JavaService (). sayHello (); pause; sag KOTLIN: ny KotlinService (). sayHello (); pause; standard: // Gør intet pause; }}}

Det JavaService og KotlinService klasser siger simpelthen “Hello World!”:

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

Vi kan nu kompilere og pakke vores ansøgning ved at ringe mvn-pakke kommando.

Lad os teste den producerede krukke ved at kø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, kalder dette JavaService klasse, der udskriver til konsollen "Java siger 'Hello World!'".

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

Og denne kalder KotlinService klasse, der udskriver "Kotlin siger 'Hello World!'".

5. Konklusion

I denne artikel fokuserede vi på, hvordan man opretter et Maven-projekt, der håndterer begge dele Java og Kotlin kilder, kompilering og pakning af dem til en krukke.

Den fulde kode kan undersøges på GitHub.


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