Diesepom-Datei enthält alles, was wir brauchen, umJava-Quellen zu kompilieren und in einejar-Datei zu packen.
3. Füge das Kotlin Maven Plugin hinzu
Jetzt müssen wir die Dateipomo optimieren, dass sie auch die Quellen vonKotlinverarbeiten kann.
Fügen wir zunächstkotlin.version zu unseren Eigenschaften undkotlin-stdlib-jdk8 to our dependencies hinzu. Auf diese Weise haben wir Zugriff auf die Funktionen vonKotlin:
Dies ist fast das Ende der Konfiguration. Wir müssenadapt maven-compiler-plugin configuration as we need Kotlin sources to be compiled before Java sources.
Häufig werden die Plugins vonMavengemäß der Deklarationsreihenfolge ausgeführt. Also sollten wirmaven-compiler-plugin nachkotlin-maven-plugin setzen. Ersteres hat jedoch zwei spezifische Ausführungen, die während der Phasen vor allem anderen ausgeführt werden:default-compile unddefault-testCompile.
Wir müssen sie deaktivieren und stattdessenjava-compile undjava-test-compile aktivieren, um sicherzustellen, dass die Ausführung vonkotlin-maven-pluginvormaven-compiler-plugin: erfolgt
Wir können sehen, dass die Standardausführungen mit Phasenone deaktiviert sind undJava-spezifische Ausführungen ancompile undtest-compile Phasen gebunden sind.
4. Sag 'Hallo Welt!' mit Java und Kotlin
Nachdem wir alles richtig eingerichtet haben, sagen wir der Welt Hallo ... vonJava undKotlin.
Erstellen Sie dazu eineApplication-Klasse mit einermain() -Smethod. Diese Methode ruft gemäß ihrem ersten Argument entweder eineJava- oder eineKotlin-Klasse auf:
public class Application {
static String JAVA = "java";
static String KOTLIN = "kotlin";
public static void main(String[] args) {
String language = args[0];
switch (language) {
case JAVA:
new JavaService().sayHello();
break;
case KOTLIN:
new KotlinService().sayHello();
break;
default:
// Do nothing
break;
}
}
}
Die KlassenJavaService undKotlinService sagen einfach "Hallo Welt!":
public class JavaService {
public void sayHello() {
System.out.println("Java says 'Hello World!'");
}
}
class KotlinService {
fun sayHello() {
System.out.println("Kotlin says 'Hello World!'")
}
}
Wir können unsere Anwendung jetzt kompilieren und verpacken, indem wir den Befehlmvn packageaufrufen.
Testen Sie das produzierte Glas, indem Sie die folgenden Befehle in einem Terminal ausführen:
Und dieser nenntKotlinService Klasse, die "Kotlin sagt 'Hallo Welt!'" Druckt.
5. Fazit
In diesem Artikel haben wir uns darauf konzentriert, wie ein Maven-Projekt erstellt wird, das sowohlJava als auchKotlin sources verarbeitet und injar kompiliert und verpackt.
Der vollständige Code kann inover on GitHub überprüft werden.