Immagino che ci dovrebbe essere una relazione intrinseca tra questi rami che dovrebbe affrontare il problema dei numeri di versione.
Rilascio
Immagino che potresti fare qualcosa come unire un codice pronto per la produzione dal ramo dev al ramo di rilascio, quindi eseguire una versione Maven (tramite Jenkins o manualmente). Questo porta automaticamente i numeri di versione alla build successiva. Quindi unisci il codice 1.4.7-SNAPSHOT a questo ramo, esegui il rilascio e taglia la versione 1.4.7, e Maven porta automaticamente la tua copia di lavoro su 1.4.8-SNAPSHOT.
Aggiornamento baseline (facoltativo)
Se non si sta già utilizzando il trunk (o il ramo di base, ecc.) come luogo per le proprie versioni, è necessario aggiornare il trunk non appena si completa un rilascio. Ciò significa che anche i numeri di versione vengono aggiornati. Questo passaggio potrebbe essere discutibile se si considera il ramo di rilascio come base di riferimento.
Riunione da Baseline a Dev Branch
È essenziale che il tuo ramo di sviluppo rimanga aggiornato con il codice di produzione effettivo . È necessario unire il codice dalla linea di base (o rilasciare il ramo, a seconda dell'implementazione) fino al ramo di sviluppo. Questo è importante nel tuo caso perché significa che le modifiche al pom che si sono verificate durante il processo di rilascio, che hanno cambiato la versione in 1.4.8-SNAPSHOT, sono portate a questo ramo.
Basandomi sulla lettura che ho fatto (oltre ai processi con la mia organizzazione), questo sembra essere un uso abbastanza standard ed efficace delle versioni e delle istantanee di Maven, e invece di mantenere i numeri di versione completamente disconnessi su rami diversi, è facile dire che qualsiasi build 1.4.7-SNAPSHOT era in effetti un immediato predecessore della versione 1.4.7. Sono imparentati. Direi che se non stai unendo avanti e indietro tra questi rami, stai facendo sia la versione di SCM che quella di Maven sbagliate, e ti stai mettendo a rischio di sviluppare codice che non corrisponde alla produzione, reintroduce bug alla produzione, ecc.