Vytvorte projekt Java a Kotlin s Mavenom

1. Úvod

V tomto rýchlom návode uvidíme, ako nastaviť a Maven spracovanie projektu obidve Java a Kotlin zdroje.

Najskôr vytvoríme projekt pre Java iba zdroje. Potom pridáme kotlin-maven-plugin narábať s Kotlin tiež.

A na záver pridáme nejaké fiktívne triedy, zabalíme našu aplikáciu a otestujeme, či všetko funguje podľa očakávaní.

2. Vytvorte projekt Java pomocou programu Maven

Po prvé, vytvorme priamo Java projekt s Maven:

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

Toto pom súbor obsahuje všetko, čo musíme zostaviť Java zdroje a zabaliť do a jar spis.

3. Pridajte doplnok Kotlin Maven

Teraz to musíme vyladiť pom pilník, aby to zvládlo Kotlin zdroje tiež.

Najprv pridajme kotlin.verzia k našim nehnuteľnostiam akotlin-stdlib-jdk8 na naše závislosti. Týmto spôsobom budeme mať prístup k Kotlin Vlastnosti:

 1,8 1.2.51 org.jetbrains.kotlin kotlin-stdlib-jdk8 $ {kotlin.version} 

Potom, musíme pridať kotlin-maven-plugin k nášmu Maven doplnky.

Nakonfigurujeme to tak, aby zvládlo oboje zostaviť a test-zostaviť ciele a povedzte mu, kde nájsť naše zdroje.

Podľa dohovoru držíme Java a Kotlin zdroje v rôznych adresároch, aj keď by sme ich mohli vložiť do rovnakých:

 kotlin-maven-plugin org.jetbrains.kotlin $ {kotlin.version} kompilovať kompiláciu $ {project.basedir} / src / main / kotlin $ {project.basedir} / src / main / java test-kompilácia test-kompilácia $ { project.basedir} / src / test / kotlin $ {project.basedir} / src / test / java 

To je takmer koniec konfigurácie. Musíme prispôsobiť sa maven-compiler-plugin konfiguráciu, ako potrebujeme Kotlin zdroje, ktoré sa majú predtým zostaviť Java zdroje.

Často Maven popravy doplnkov sa uskutočňujú podľa poradia vyhlásenia. Mali by sme teda umiestniť maven-compiler-plugin po kotlin-maven-plugin. Prvý má ale dve konkrétne popravy, ktoré sa vykonajú pred všetkým počas fáz: default-compile a default-testCompile.

Musíme ich deaktivovať a povoliť kompilácia Java a kompilácia java-test namiesto toho to zabezpečiť kotlin-maven-plugin poprava sa stane predtým maven-compiler-plugin:

 org.apache.maven.plugins maven-compiler-plugin 3.1 $ {java.version} $ {java.version} default-compile none default-testCompile none java-compile compile compile java-test-compile test-compile testCompile 

Vidíme, že predvolené spustenia sú pomocou fázy zakázané žiadnya Java- sú viazané na konkrétne popravy zostaviť a test-zostaviť fázy.

4. Povedzte „Hello World!“ S programami Java aj Kotlin

Teraz, keď sme všetko správne nastavili, pozdravme svet ... z oboch Java a Kotlin.

Aby sme to dosiahli, vytvorme si Aplikácia trieda s a hlavný() metóda. Táto metóda bude nazývať a Java alebo a Kotlin triedy podľa prvého argumentu:

verejná trieda Aplikácia {static String JAVA = "java"; statický reťazec KOTLIN = "kotlin"; public static void main (String [] args) {String language = args [0]; switch (jazyk) {case JAVA: new JavaService (). sayHello (); prestávka; prípad KOTLIN: nový KotlinService (). sayHello (); prestávka; default: // Nerobiť nič; }}}

The JavaService a KotlinService triedy jednoducho hovoria „Hello World!“:

public class JavaService {public void sayHello () {System.out.println ("Java hovorí 'Hello World!'"); }}
trieda KotlinService {fun sayHello () {System.out.println ("Kotlin hovorí 'Hello World!'")}}

Teraz môžeme našu aplikáciu zostaviť a zabaliť volaním balíček mvn príkaz.

Vyskúšajme vyrobenú nádobu spustením nasledujúcich príkazov v termináli:

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

Ako vidíme, nazýva sa to JavaService trieda, ktorá tlačí na konzolu „Java hovorí„ Hello World! ““.

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

A tento volá KotlinService triedy, ktorá vytlačí „Kotlin hovorí‘ Hello World! ‘“.

5. Záver

V tomto článku sme sa zamerali na to, ako vytvoriť projekt Maven pracujúci s oboma Java a Kotlin zdroje, ich zostavenie a zabalenie do a jar.

Celý kód je možné preskúmať na GitHub.


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