การสร้างโครงการ maven หลายโมดูล

สวัสดี ฉันค้นหาในเน็ต อ่านบทความมากมาย ดังนั้นจึงมีคำถามและเอกสารประกอบ แต่ฉันไม่พบวิธีแก้ปัญหา นี่คือปัญหาของฉัน

ฉันมีโปรเจ็กต์ Maven แบบหลายโมดูลซึ่งประกอบด้วยสามโมดูล A,B และ C A และ B เป็นอิสระและ C ขึ้นอยู่กับ A และ B และแน่นอนว่าฉันมีโปรเจ็กต์หลัก ฉันยังมีเซิร์ฟเวอร์เจนกินส์ที่ตั้งค่าไว้เพื่อสร้างโปรเจ็กต์เหล่านี้ และพื้นที่เก็บข้อมูล Nexus

ปัญหาของฉันคือเมื่อฉันสร้างโปรเจ็กต์ maven จะสร้าง A และ B อย่างถูกต้อง แต่สำหรับ C มันจะดาวน์โหลดสิ่งประดิษฐ์เก่าจากที่เก็บ Nexus และแน่นอนว่ามันล้มเหลวในการสร้างโมดูล C ฉันจะทำให้ maven ใช้ jars ที่สร้างขึ้นในปัจจุบันได้อย่างไร อันไหนติดตั้งในพื้นที่เก็บข้อมูลในเครื่องแทนที่จะเป็นอันเก่าบน Nexus?

เวอร์ชันของ A และ B และ C ตั้งค่าเป็น 1.1.{build_number}-SNAPSHOT พร้อมปลั๊กอินเวอร์ชัน maven และตามที่ฉันเข้าใจว่า maven ควรใช้เวอร์ชันที่ใหม่กว่าจากในเครื่อง แต่ไม่ได้เป็นเช่นนั้น ในตอนแรกฉันไม่ต้องการโพสต์ pom.xmls หลายร้อยบรรทัด แต่ถ้าคุณต้องการส่วน ฉันจะจัดเตรียมให้

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณ!


person Tibor Bana    schedule 25.06.2015    source แหล่งที่มา
comment
ฉันใช้ Jenkins และ Artifactory และเมื่อฉันสร้างโปรเจ็กต์หลายโมดูล Maven จะดู Maven repo ในพื้นที่ (.m2/repository) ก่อน ถัดไป เมื่อบิลด์เป็นปกติ ไบนารี (A, B และ C) จะถูกอัปโหลดไปยัง Artifactory บางทีคุณอาจมีตัวเลือกกับ Jenkins/Nexus เพื่อใช้ repo ในเครื่องแทน repo ระยะไกล   -  person Bruno Lavit    schedule 25.06.2015
comment
สวัสดีบรูโน ขอบคุณสำหรับคำตอบของคุณ ฉันต้องการสิ่งที่คุณกำลังทำอย่างแน่นอน แต่อย่างใดในกรณีของฉัน maven เพิกเฉยต่อพื้นที่เก็บข้อมูลในเครื่องและฉันไม่สามารถเข้าใจได้ว่าจะทำให้ใช้สิ่งประดิษฐ์ที่สร้างขึ้นในปัจจุบันได้อย่างไร มีความคิดใดบ้างที่ฉันควรดู?   -  person Tibor Bana    schedule 25.06.2015
comment
บางทีคำตอบนี้อาจช่วยได้: stackoverflow.com/questions/19180696 /   -  person Bruno Lavit    schedule 25.06.2015
comment
Maven รีเฟรชการขึ้นต่อกันในเครื่องหนึ่งครั้งต่อวัน ดังนั้นบางทีคุณอาจต้องเปลี่ยนการตั้งค่านี้: stackoverflow.com/questions/2148111/maven-snapshot-updates   -  person Bruno Lavit    schedule 25.06.2015
comment
สวัสดี มันถูกตั้งค่าเป็นเสมอ แต่ฉันตั้งค่า tot ไม่ได้ในตอนนี้เพื่อป้องกันการดาวน์โหลดส่วนเสริม snpashot แต่ส่วนใหม่ที่ใหม่กว่าใน repo ในพื้นที่ของฉันก็ยังถูกเพิกเฉย   -  person Tibor Bana    schedule 25.06.2015
comment
หากคุณสร้างบนเครื่องของคุณ คุณยืนยันว่าผลลัพธ์ของการสร้างนั้นใช้ได้หรือไม่   -  person Bruno Lavit    schedule 25.06.2015
comment
การทดสอบที่ดีที่สุดสำหรับโปรเจ็กต์ที่มีหลายโมดูลคือการล้างพื้นที่เก็บข้อมูลในเครื่องและเพียงรัน mvn clean package หากมีสิ่งผิดปกติเกิดขึ้น โครงสร้างของคุณไม่ได้รับการกำหนดค่าอย่างดี นั่นคือสิ่งที่ฉันจะตรวจสอบก่อน   -  person khmarbaise    schedule 25.06.2015
comment
เห็นด้วยอย่างยิ่งกับ @khmarbaise .. เป็นไปได้มากว่าโครงการหลายโมดูลของคุณมีการตั้งค่าที่ไม่ถูกต้องซึ่งทำให้เครื่องปฏิกรณ์ Maven ไม่สามารถแก้ไข A และ B จาก C ภายในโครงการได้อย่างถูกต้อง   -  person Manfred Moser    schedule 25.06.2015
comment
คุณควรโพสต์วิธีแก้ปัญหาของคุณเองเป็นคำตอบและยอมรับ   -  person Manfred Moser    schedule 26.06.2015


คำตอบ (1)


ฉันได้ตั้งค่าหมายเลขเวอร์ชันใน pom ของโมดูลย่อยและเปลี่ยนเป็นสืบทอดหมายเลขเวอร์ชันจาก parent pom ในโมดูล pom ของโมดูล C เวอร์ชัน A และ B ตั้งค่าเป็น ${project.version}

person Community    schedule 03.11.2015