ฉันคิดว่าควรมีความสัมพันธ์โดยธรรมชาติระหว่างสาขาเหล่านี้ที่ควรจะแก้ไขปัญหาของหมายเลขรุ่น
การปล่อย
ฉันจะจินตนาการว่าคุณอาจทำอะไรบางอย่างเช่นการผสานโค้ดที่พร้อมใช้งานจริงจากสาขา dev ไปยังสาขาที่วางจำหน่ายแล้วทำการเปิดตัว Maven (ผ่าน Jenkins หรือด้วยตนเอง) สิ่งนี้จะหมุนหมายเลขเวอร์ชันไปยังบิลด์ถัดไปโดยอัตโนมัติ ดังนั้นคุณจึงรวมรหัส 1.4.7-SNAPSHOT ไปที่สาขานี้ดำเนินการเผยแพร่และตัดเวอร์ชัน 1.4.7 และ Maven จะม้วนสำเนางานของคุณเป็น 1.4.8-SNAPSHOT โดยอัตโนมัติ
การอัปเดตพื้นฐาน (ไม่บังคับ)
หากคุณยังไม่ได้ใช้ลำตัวของคุณ (หรือสาขาพื้นฐานเป็นต้น) เป็นสถานที่สำหรับการเผยแพร่ของคุณคุณควรอัปเดตลำต้นทันทีที่เสร็จสิ้นการปล่อย นี่หมายความว่าหมายเลขรุ่นของคุณกำลังได้รับการอัปเดตเช่นกัน ขั้นตอนนี้อาจเป็นสิ่งที่สงสัยหากคุณพิจารณาว่าสาขาการวางจำหน่ายนั้นเป็นพื้นฐาน
เพิ่มขึ้นจาก Baseline เป็น Dev Dev
จำเป็นอย่างยิ่งที่สาขาการพัฒนาของคุณจะต้องทันสมัยกับรหัสการผลิตจริง คุณต้องรวมรหัสจากพื้นฐาน (หรือสาขาที่วางจำหน่ายขึ้นอยู่กับการใช้งาน) จนถึงสาขาการพัฒนาของคุณ นี่เป็นสิ่งสำคัญในกรณีของคุณเพราะมันหมายถึงการเปลี่ยนแปลง pom ที่เกิดขึ้นในระหว่างกระบวนการวางจำหน่ายซึ่งเปลี่ยนเวอร์ชั่นเป็น 1.4.8-SNAPSHOT จะถูกนำไปที่สาขานี้
จากการอ่านที่ฉันทำ (เช่นเดียวกับกระบวนการในองค์กรของฉัน) สิ่งนี้ดูเหมือนจะเป็นการใช้มาตรฐานและประสิทธิภาพของ Maven release และ snapshots และแทนที่จะรักษาหมายเลขเวอร์ชั่นที่ไม่ได้เชื่อมต่ออย่างสมบูรณ์ในสาขาต่าง ๆ มันง่ายที่จะบอก 1.4.7-SNAPSHOT build ใด ๆ ที่จริงแล้วเป็นรุ่นก่อนหน้าของ 1.4.7 release พวกมันเกี่ยวข้องกัน ฉันจะบอกได้ว่าถ้าคุณไม่ได้ผสานไปมาระหว่างสาขาเหล่านี้คุณกำลังทำทั้งรุ่น SCM และ Maven ผิดและคุณต้องเสี่ยงต่อการพัฒนากับรหัสที่ไม่ตรงกับการผลิต แนะนำข้อบกพร่องในการผลิตอีกครั้ง