Saya akan membayangkan harus ada hubungan yang melekat antara cabang-cabang ini yang harus mengatasi masalah nomor versi.
Melepaskan
Saya akan membayangkan Anda mungkin melakukan sesuatu seperti menggabungkan kode siap produksi dari cabang dev ke cabang rilis, kemudian melakukan rilis Maven (melalui Jenkins atau secara manual). Ini secara otomatis menggulung nomor versi ke bangunan berikutnya. Jadi, Anda menggabungkan kode 1.4.7-SNAPSHOT ke cabang ini, melakukan rilis dan memotong versi 1.4.7, dan Maven otomatis menggulung copy pekerjaan Anda ke 1.4.8-SNAPSHOT.
Memperbarui Baseline (opsional)
Jika Anda belum menggunakan bagasi Anda (atau cabang baseline, dll) sebagai tempat untuk rilis Anda, Anda harus memperbarui bagasi segera setelah Anda menyelesaikan rilis. Ini berarti nomor versi Anda juga diperbarui. Langkah ini mungkin bisa diperdebatkan jika Anda hanya menganggap cabang rilis sebagai baseline.
Naik-gabungkan dari Baseline ke Dev Branch
Sangat penting bahwa cabang pengembangan Anda tetap mengetahui kode produksi aktual . Anda perlu menggabungkan kode dari baseline (atau melepaskan cabang, tergantung pada implementasi) hingga cabang pengembangan Anda. Ini penting dalam kasus Anda karena itu berarti perubahan pom yang terjadi selama proses rilis, yang mengubah versi menjadi 1.4.8-SNAPSHOT, dibawa ke cabang ini.
Berdasarkan bacaan yang telah saya lakukan (serta proses dengan di organisasi saya), ini tampaknya menjadi standar yang cukup dan efektif menggunakan rilis dan snapshot Maven, dan daripada mempertahankan nomor versi yang benar-benar terputus pada cabang yang berbeda, mudah untuk mengatakannya. bahwa build 1.4.7-SNAPSHOT sebenarnya adalah pendahulu langsung dari rilis 1.4.7. Mereka terkait. Saya akan mengatakan lebih jauh jika Anda tidak melakukan penggabungan bolak-balik di antara cabang-cabang ini, Anda melakukan kesalahan versi SCM dan Maven, dan Anda berisiko terhadap pengembangan kode yang tidak cocok dengan produksi , memperkenalkan kembali bug ke produksi, dll.
Pikirkan kembali pendekatan Anda.
Sangat umum untuk menggunakan misalnya 1.4.2 untuk versi rilis dan kemudian 1.4.3-SNAPSHOT untuk pengembangan ke yang berikutnya.
Ketika Anda perlu mempertahankan rilis 1.4.2 KEMUDIAN cabang itu dari komit yang berasal artefak 1.4.2 Anda.
Kemudian Anda memberi tahu Jenkins lokasi repositori dan nama cabang Anda, menghasilkan kumpulan file yang sedang diperiksa, dan kemudian Anda memberi tahu Jenkins untuk menggunakan pakar pada proyek Anda untuk membangunnya.
Catatan: Saya telah menemukan bahwa sangat bermanfaat menggunakan pom.xml tunggal untuk membangun artefak yang sebenarnya dan pom.xml lain untuk membuat bit aktual untuk dikirim ke pelanggan.
sumber