Ce fichierpom contient tout ce dont nous avons besoin pour compiler les sources deJava et les regrouper dans un fichierjar.
3. Ajouter le plugin Kotlin Maven
Nous devons maintenant régler ce fichierpom afin qu'il puisse également gérer les sourcesKotlin.
Ajoutons d'abordkotlin.version à nos propriétés etkotlin-stdlib-jdk8 to our dependencies. De cette façon, nous aurons accès aux fonctionnalités deKotlin:
C'est presque la fin de la configuration. Nous avons besoin deadapt maven-compiler-plugin configuration as we need Kotlin sources to be compiled before Java sources.
Souvent, les exécutions des pluginsMaven se produisent selon l'ordre de déclaration. Nous devrions donc placermaven-compiler-plugin afterkotlin-maven-plugin. Mais le premier a deux exécutions spécifiques qui sont exécutées avant tout pendant les phases:default-compile etdefault-testCompile.
Nous devons les désactiver et activerjava-compile etjava-test-compile à la place pour nous assurer que l'exécution dekotlin-maven-plugin se produira avantmaven-compiler-plugin:
Nous pouvons voir que les exécutions par défaut sont désactivées en utilisant la phasenone, et les exécutions spécifiques àJava sont liées aux phasescompile ettest-compile.
4. Dites 'Hello World!' avec Java et Kotlin
Maintenant que nous avons tout configuré correctement, disons bonjour au monde… deJava etKotlin.
Pour ce faire, créons une classeApplication avec une méthodemain() . Cette méthode appellera soit une classeJava soit une classeKotlin selon son premier argument:
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;
}
}
}
Les classesJavaService etKotlinService disent simplement "Hello World!":
public class JavaService {
public void sayHello() {
System.out.println("Java says 'Hello World!'");
}
}
class KotlinService {
fun sayHello() {
System.out.println("Kotlin says 'Hello World!'")
}
}
Nous pouvons maintenant compiler et empaqueter notre application en appelant la commandemvn package.
Testons le fichier jar produit en exécutant les commandes suivantes dans un terminal:
Et celui-ci appelle la classeKotlinService, qui affiche «Kotlin dit« Hello World! »».
5. Conclusion
Dans cet article, nous nous sommes concentrés sur la façon de créer un projet Maven gérant à la fois les sourcesJava etKotlin , en les compilant et en les regroupant dans unjar.