ดูเหมือนจะมีหลายวิธีในการจัดโครงสร้างปอมปอมในโครงสร้างแบบมัลติโปรเจ็กต์และฉันสงสัยว่าถ้าใครมีความคิดเกี่ยวกับข้อดี / ข้อเสียของแต่ละวิธี
วิธีที่ง่ายที่สุดในการมี parent pom ก็คือการใส่ไว้ในรูทของโปรเจคเช่น
myproject/
myproject-core/
myproject-api/
myproject-app/
pom.xml
โดยที่ pom.xml เป็นทั้งโปรเจ็กต์หลักรวมถึงอธิบายโมดูล -core -api และ -app
วิธีถัดไปคือการแยกพาเรนต์ออกเป็นไดเรกทอรีย่อยของตนเองเช่นเดียวกับใน
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
ที่ซึ่งพาเรนต์ pom ยังคงมีโมดูล แต่มันสัมพันธ์กันเช่น ../myproject-core
ในที่สุดก็มีตัวเลือกที่คำนิยามโมดูลและผู้ปกครองจะถูกแยกออกเป็น
myproject/
mypoject-parent/
pom.xml
myproject-core/
myproject-api/
myproject-app/
pom.xml
โดยที่ parent pom มีการกำหนดค่า "shared" ใด ๆ (dependencyManagement คุณสมบัติ ฯลฯ ) และ myproject / pom.xml มีรายการของโมดูล
ความตั้งใจที่จะปรับขนาดให้เป็นงานสร้างขนาดใหญ่ดังนั้นควรปรับขนาดให้กับโครงการและสิ่งประดิษฐ์จำนวนมาก
คำถามโบนัสสองสามข้อ:
- ที่ที่ดีที่สุดในการกำหนดการกำหนดค่าที่ใช้ร่วมกันต่าง ๆ เช่นในการควบคุมแหล่งที่มาไดเรกทอรีการใช้งานปลั๊กอินทั่วไป ฯลฯ (ฉันสมมติว่าผู้ปกครอง แต่ฉันมักจะถูกกัดโดยสิ่งนี้และพวกเขาได้ลงเอยในแต่ละโครงการมากกว่า คนธรรมดาคนหนึ่ง)
- ปลั๊กอิน maven-release, hudson และ nexus จะจัดการกับวิธีการที่คุณติดตั้งหลายโครงการของคุณได้อย่างไร (อาจเป็นคำถามที่ยิ่งใหญ่กว่านี้ถ้ามีใครถูกจับได้ว่าเมื่อมีการตั้งค่าการสร้างหลายโครงการ)?
แก้ไข: แต่ละโครงการย่อยมี pom.xml ของตัวเองฉันได้ปล่อยไว้เพื่อให้มันสั้น