Intellij Idea - การดำน้ำลึก
สี่บทแรกของบทช่วยสอนนี้ออกแบบมาเพื่อให้ผู้เริ่มต้นเห็นภาพรวมระดับพื้นฐานของ IntelliJ ส่วนนี้เจาะลึก IntelliJ และพูดคุยเพิ่มเติมเกี่ยวกับโครงการรูปแบบและสิ่งอื่น ๆ
การทำความเข้าใจโครงการ
โครงการคือแอปพลิเคชันหรือซอฟต์แวร์ที่คุณกำลังทำงานอยู่ สามารถมีโมดูลคลาสไลบรารีคอนฟิกูเรชันและอื่น ๆ ได้หลายโมดูล เป็นองค์ประกอบที่อยู่บนสุดในลำดับชั้น
การทำความเข้าใจโมดูล
โมดูลมีหนึ่งแถวด้านล่าง "โครงการ" โมดูลคือเอนทิตีแยกต่างหากที่สามารถคอมไพล์ดีบักและรันโดยไม่ขึ้นกับโมดูลอื่น ๆ โครงการเดียวสามารถมีหลายโมดูล คุณสามารถเพิ่มหรือลบโมดูลออกจากโครงการได้ตลอดเวลา
นอกจากนี้เรายังสามารถนำเข้าโมดูลที่มีอยู่ ทำตามขั้นตอนเหล่านี้เพื่อนำเข้าโมดูลที่มีอยู่ -
- ไปที่ไฟล์→โครงสร้างโครงการ
- เลือกโมดูลและคลิกที่ไอคอนบวก
- จะแสดงตัวเลือกในการนำเข้าโมดูล
การทำความเข้าใจโฟลเดอร์
Content rootคือโฟลเดอร์ที่มีไฟล์ทั้งหมดที่ประกอบเป็นโมดูลของคุณ โมดูลสามารถมีโฟลเดอร์เนื้อหาได้มากกว่าหนึ่งโฟลเดอร์ โฟลเดอร์แบ่งออกเป็นประเภทต่อไปนี้ -
Sources - ด้วยการกำหนดหมวดหมู่นี้ให้กับโฟลเดอร์เราสั่งให้ IntelliJ ทราบว่าสิ่งนี้และโฟลเดอร์ย่อยมีซอร์สโค้ด java และควรรวบรวมเป็นส่วนหนึ่งของกระบวนการคอมไพล์
Tests- เมื่อกำหนดหมวดหมู่นี้ให้กับโฟลเดอร์เราจะสั่งให้ IntelliJ เป็นตำแหน่งสำหรับการทดสอบหน่วย โฟลเดอร์นี้สามารถเข้าถึงคลาสจากโฟลเดอร์ Sources
Resources- แสดงถึงไฟล์ทรัพยากรต่างๆที่ใช้ในโปรเจ็กต์ตัวอย่างเช่นรูปภาพ XML และไฟล์คุณสมบัติ ในระหว่างขั้นตอนการคอมไพล์เนื้อหาของโฟลเดอร์นี้จะถูกคัดลอกไปยังโฟลเดอร์เอาต์พุต
Excluded- เนื้อหาจากโฟลเดอร์ที่แยกออกจะไม่ถูกทำดัชนีโดย IntelliJ ซึ่งหมายความว่า IntelliJ จะไม่ให้คำแนะนำการเติมโค้ดและคำแนะนำอื่น ๆ ตัวอย่างเช่นไดเร็กทอรีเอาต์พุตและไดเร็กทอรีเป้าหมายจะถูกแยกออกโดยค่าเริ่มต้น
Test resources - สิ่งนี้คล้ายกับทรัพยากรและใช้สำหรับการทดสอบหน่วย
การทำความเข้าใจไลบรารี
ห้องสมุดคือการรวบรวมคลาสต่างๆ ไลบรารีช่วยให้สามารถใช้รหัสซ้ำได้ ใน Java ไลบรารีสามารถอยู่ใน ZIP, Jar หรือเพียงแค่โฟลเดอร์ เราสามารถกำหนดไลบรารีได้สามระดับ ระดับ ได้แก่ - ระดับโลกโครงการและระดับโมดูล
Global level - แชร์โดยโครงการทั้งหมด
Project level - แชร์โดยโมดูลทั้งหมดของโครงการ
Module level - แชร์โดยคลาสของโมดูลเหล่านั้น
การทำความเข้าใจ Facets
Facets เป็นส่วนขยายของโมดูล พวกเขาเพิ่มการสนับสนุนให้กับกรอบและเทคโนโลยี เมื่อมีการเพิ่ม facet ลงในโมดูล IntelliJ จะระบุว่าจะเพิ่มการสนับสนุน ตัวอย่างเช่นคำแนะนำและความช่วยเหลือในตัวแก้ไขเครื่องมือใหม่ในแถบหน้าต่างการดาวน์โหลดการพึ่งพาและอื่น ๆ คุณสามารถเพิ่มแง่มุมจากไฟล์File → Project Structure หน้าต่างดังภาพด้านล่าง -
สิ่งประดิษฐ์
Artifacts คือผลลัพธ์ของโปรเจ็กต์ อาจเป็นไฟล์ JAR ธรรมดาแอปพลิเคชัน Java EE หรือแอปพลิเคชัน Java EJB หากเราใช้เครื่องมือสร้างภายนอกเช่น Gradle หรือ Maven IntelliJ จะเพิ่มสิ่งประดิษฐ์ให้โดยอัตโนมัติ สามารถสร้างอาร์ติแฟกต์ได้โดยไปที่ไฟล์File → Project Structure ดังแสดงด้านล่าง -
การนำเข้าโครงการที่มีอยู่
ในส่วนนี้เราจะเข้าใจวิธีการนำเข้าโครงการที่มีอยู่ เราสามารถนำเข้าโครงการได้สองวิธี -
- นำเข้าจากแหล่งที่มีอยู่
- นำเข้าจากโมเดลการสร้าง
ปัจจุบันรองรับ Gradle และ Maven build tools เพื่อนำเข้าโครงการ -
- ไปที่ไฟล์→ใหม่→โปรเจ็กต์จากแหล่งที่มีอยู่
- เลือกไดเร็กทอรีของโปรเจ็กต์ที่มีอยู่, pom.xml ของ Maven หรือบิลด์สคริปต์ของ Gradle
- คลิกที่ปุ่ม OK
รูปแบบโครงการ
IntelliJ รองรับรูปแบบโครงการสองประเภทหนึ่งคือ directory-based และอื่น ๆ คือ file-based. ขอแนะนำให้ใช้รูปแบบตามไดเร็กทอรีใหม่กว่า ตามค่าเริ่มต้น IntelliJ จะสร้างรูปแบบโครงการตามไดเรกทอรี คุณสามารถเลือกรูปแบบโครงการในขณะที่สร้างโครงการใหม่ ในหน้าต่างโครงการใหม่เพียงคลิกที่การตั้งค่าเพิ่มเติมตามที่แสดงในภาพด้านล่าง -
รูปแบบโครงการตามไดเรกทอรี
รูปแบบนี้ช่วยสร้างโฟลเดอร์ไอเดียในโปรเจ็กต์ของคุณและเก็บไฟล์คอนฟิกูเรชันทั้งหมดไว้ในโฟลเดอร์นั้น การตั้งค่าจะถูกจัดกลุ่มไว้ในไฟล์ xml ตัวอย่างเช่นมันจะสร้างmisc.xml, modules.xml, workspace.xmlและอื่น ๆ ภาพหน้าจอต่อไปนี้จะช่วยให้คุณเข้าใจวิธีการทำงาน -
รูปแบบโครงการตามไฟล์
มันจะสร้างไฟล์โครงการสองไฟล์ด้วย ..ipr และ wprนามสกุล. ไฟล์ ipr จะมีการตั้งค่าเฉพาะโครงการและไฟล์ wpr จะมีการตั้งค่าเฉพาะพื้นที่ทำงาน
ในการแปลงโครงการที่ใช้ไฟล์เป็นโครงการที่ใช้ไดเรกทอรีให้ไปที่ไฟล์ File → Save as a Directory-Based format.
รูปแบบโครงการตามไดเรกทอรีเทียบกับไฟล์
เมื่อเทียบกับรูปแบบโครงการที่ใช้ไฟล์รูปแบบโครงการตามไดเรกทอรีจะจัดเก็บการตั้งค่าในโฟลเดอร์แยกต่างหากที่มีชื่อที่มีความหมาย ความแตกต่างอื่น ๆ ได้แก่ -
การตั้งค่าที่เกี่ยวข้องได้รับการจัดเก็บในไฟล์เดียวทำให้ง่ายต่อการจัดการในรูปแบบโครงการตามไดเรกทอรี
ถ้าโฟลเดอร์มีโฟลเดอร์ย่อยไอเดีย IntelliJ จะจดจำโปรเจ็กต์นั้น ด้วยเหตุนี้คุณจึงไม่ได้เลือกโปรเจ็กต์ ipr อย่างชัดเจน
รูปแบบโครงการที่ใช้ไดเร็กทอรีจะแบ่งการตั้งค่าออกเป็นไฟล์หลาย ๆ ไฟล์ดังนั้นการเลือกประเภทการตั้งค่าเฉพาะเพื่อจัดเก็บในระบบควบคุมเวอร์ชันจึงง่ายกว่า