צור פרויקט Java ו- Kotlin עם Maven

1. הקדמה

במדריך מהיר זה נראה כיצד להקים א Maven טיפול בפרויקט בשניהם ג'אווה ו קוטלין מקורות.

ראשית ניצור פרויקט עבור ג'אווה מקורות בלבד. לאחר מכן נוסיף את ה- תוסף kotlin-maven להתמודד קוטלין גם כן.

ולסיום, נוסיף כמה שיעורי דמה, נארוז את היישום שלנו ונבדוק אם הכל עובד כמצופה.

2. צור פרויקט Java עם Maven

ראשית כל, בואו ניצור פשוט ג'אווה פרויקט עם Maven:

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

זֶה פום הקובץ מכיל את כל מה שאנחנו צריכים לאסוף ג'אווה מקורות ולארוז אותם לא קַנקַן קוֹבֶץ.

3. הוסף תוסף Kotlin Maven

עכשיו אנחנו צריכים לכוון את זה פום קובץ כך שהוא יכול להתמודד קוטלין גם מקורות.

ראשית נוסיף kotlin.version לנכסים שלנו וkotlin-stdlib-jdk8 לתלות שלנו. בדרך זו תהיה לנו גישה ל קוטלין תכונות:

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

לאחר מכן, אנחנו צריכים להוסיף את תוסף kotlin-maven שלנו Maven תוספים.

נגדיר אותו לטפל בשניהם לְלַקֵט ו מבחן-קומפילציה מטרות, לומר לו היכן למצוא את המקורות שלנו.

לפי המוסכמה, אנו שומרים ג'אווה ו קוטלין מקורות בספריות שונות, אם כי היינו יכולים לשים את כולם באותה מידה:

 kotlin-maven-plugin org.jetbrains.kotlin $ {kotlin.version} הידור הידור $ {project.basedir} / src / main / kotlin $ {project.basedir} / src / main / java test-compile test-compile $ { project.basedir} / src / test / kotlin $ {project.basedir} / src / test / java 

זה כמעט סוף התצורה. אנחנו צריכים לְהִסְתָגֵל תוסף maven-compiler תצורה לפי הצורך קוטלין מקורות שייאספו לפני כן ג'אווה מקורות.

בתדירות גבוהה, Maven ביצועים של תוספים מתרחשים על פי צו ההצהרה. אז אנחנו צריכים למקם תוסף maven-compiler לאחר תוסף kotlin-maven. אך לשניים יש שני הוצאות להורג ספציפיות שמבוצעות לפני כל השאר בשלבים: ברירת מחדל לקמפל ו default-testCompile.

עלינו להשבית אותם ולהפעיל אותם java-compile ו java-test-compile במקום להבטיח זאת תוסף kotlin-maven הביצוע יקרה לפני תוסף maven-compiler:

 org.apache.maven.plugins maven-compiler-plugin 3.1 $ {java.version} $ {java.version} default-compile none test-default לא לחבר אף Java-compile לקמפל compile Java-test-compile מבחן קומפילציה testCompile 

אנו יכולים לראות כי ביצועי ברירת המחדל מושבתים באמצעות שלב אף אחד, ו ג'אווה-הוצאות להורג ספציפיות חייבות לְלַקֵט ו מבחן-קומפילציה שלבים.

4. אמור 'שלום עולם!' גם עם ג'אווה וגם עם קוטלין

עכשיו, לאחר שהגדרנו נכון את הכל, בואו נגיד שלום לעולם ... משניהם ג'אווה ו קוטלין.

לשם כך, בואו ניצור יישום כיתה עם א רָאשִׁי() שיטה. שיטה זו תקרא או ג'אווה או א קוטלין בכיתה על פי טיעונה הראשון:

יישום בכיתה ציבורית {סטטי מחרוזת JAVA = "java"; מחרוזת סטטית KOTLIN = "kotlin"; סטטי ציבורי ריק ריק (String [] args) {String language = args [0]; החלף (שפה) {מקרה JAVA: JavaService חדש (). sayHello (); לשבור; מקרה KOTLIN: KotlinService חדש (). sayHello (); לשבור; ברירת מחדל: // אל תפסיק שום דבר; }}}

ה JavaService ו KotlinService השיעורים פשוט אומרים "שלום עולם!":

מחלקה ציבורית JavaService {public void sayHello () {System.out.println ("Java אומרת 'שלום עולם!'"); }}
class KotlinService {fun sayHello () {System.out.println ("Kotlin אומר 'שלום עולם!'")}}

כעת אנו יכולים לקמפל ולארוז את היישום שלנו על ידי התקשרות חבילת mvn פקודה.

בואו לבדוק את הצנצנת המיוצרת על ידי הפעלת הפקודות הבאות במסוף:

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

כפי שאנו רואים זה מכנה את JavaService בכיתה שמדפיסה למסוף "ג'אווה אומרת 'שלום עולם!'".

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

וזה קורא KotlinService בכיתה, המדפיסה "קוטלין אומר 'שלום עולם!'".

5. מסקנה

במאמר זה התמקדנו כיצד ליצור פרויקט Maven המטפל בשניהם ג'אווה ו קוטלין מקורות, אוסף אותם ואריזתם לא קַנקַן.

ניתן לבחון את הקוד המלא ב- GitHub.


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