Buat Projek Java dan Kotlin dengan Maven

1. Pengenalan

Dalam tutorial ringkas ini, kita akan melihat cara menyiapkan projek Maven yang menangani sumber Java dan Kotlin .

Kami akan membuat projek untuk sumber Java terlebih dahulu . Kami kemudian akan menambahkan plugin kotlin-maven untuk mengendalikan Kotlin juga.

Dan akhirnya, kami akan menambahkan beberapa kelas dummy, mengemas aplikasi kami, dan menguji apakah semuanya berfungsi seperti yang diharapkan.

2. Buat Projek Java dengan Maven

Pertama sekali, mari buat projek Java langsung dengan Maven :

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

Ini pom fail mengandungi semua kita perlu menyusun Java sumber dan pakej mereka ke dalam balang fail.

3. Tambahkan Plugin Kotlin Maven

Sekarang kita perlu menyesuaikan fail pom ini sehingga dapat menangani sumber Kotlin juga.

Mari kita tambahkan kotlin.version pada harta tanah kita dan kotlin-stdlib-jdk8 ke pergantungan kita . Dengan cara ini kita akan mendapat akses ke ciri Kotlin :

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

Kemudian, kita perlu menambahkan plugin kotlin-maven ke plugin Maven kita .

Kami akan mengkonfigurasinya untuk menangani tujuan penyusun dan penyusun ujian , dengan memberitahu di mana untuk mencari sumber kami.

Secara konvensional, kami menyimpan sumber Java dan Kotlin dalam direktori yang berbeza, walaupun kami dapat meletakkan semuanya dalam satu sama:

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

Ini hampir akhir konfigurasi. Kita perlu menyesuaikan konfigurasi maven-compiler-plugin kerana kita memerlukan sumber Kotlin disusun sebelum sumber Java .

Kerap kali, pelaksanaan plugin Maven berlaku mengikut perintah pengisytiharan. Oleh itu, kita harus meletakkan maven-compiler-plugin selepas kotlin-maven-plugin . Tetapi yang pertama mempunyai dua pelaksanaan tertentu yang dilaksanakan sebelum semua yang lain semasa fasa: default-compile dan default-testCompile .

Kita perlu melumpuhkannya dan mengaktifkan java-compile dan java-test-compile untuk memastikan bahawa pelaksanaan kotlin-maven-plugin akan berlaku sebelum 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    

Kita dapat melihat bahawa pelaksanaan lalai dilumpuhkan menggunakan fasa tidak , dan pelaksanaan khas Java terikat untuk menyusun dan menguji fasa.

4. Katakan 'Hello World!' Dengan Kedua-dua Java dan Kotlin

Sekarang kita telah mengatur semuanya dengan betul, mari kita menyapa dunia ... dari Java dan Kotlin .

Untuk melakukannya, mari buat kelas Aplikasi dengan kaedah utama () . Kaedah ini akan memanggil kelas Java atau Kotlin mengikut hujah pertamanya:

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; } } }

Kelas JavaService dan KotlinService hanya mengatakan "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!'") } }

Kita sekarang dapat menyusun dan mengemas aplikasi kita dengan memanggil perintah pakej mvn .

Mari kita uji balang yang dihasilkan dengan menjalankan perintah berikut di terminal:

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

Seperti yang kita lihat ini memanggil kelas JavaService yang mencetak ke konsol "Java mengatakan 'Hello World!'".

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

Dan ini memanggil kelas KotlinService , yang mencetak "Kotlin berkata 'Hello World!'".

5. Kesimpulan

Dalam artikel ini, kami memfokuskan bagaimana membuat projek Maven yang menangani sumber Java dan Kotlin , menyusun dan mengemasnya ke dalam balang .

Kod lengkap boleh diperiksa di GitHub.