Strategia di versionamento per JAR di interfacce di servizio

1

Sto costruendo un'architettura orientata ai servizi composta (principalmente) da servizi basati su Java, ognuno dei quali è un progetto Maven (in un singolo repository) con due sottomoduli: common e server. Il modulo common contiene le interfacce del servizio che i client possono includere nel loro progetto per effettuare chiamate di servizio. Il sottomodulo server contiene il codice che alimenta effettivamente il servizio.

Ora sto cercando di capire una strategia di versioning appropriata per le interfacce, in modo tale che ogni modifica dell'interfaccia produca un nuovo jar comune, ma le modifiche al server (a patto che non influiscano sul contratto delle interfacce) ) ricevere lo stesso jar comune.

So che è abbastanza semplice da fare manualmente (basta incrementare la versione del server e non toccare quella comune), ma questo progetto verrà costruito e implementato da un server CI e mi piacerebbe venire con una strategia per il controllo automatico della versione di questi. L'unica cosa che sono riuscito a fare finora è avere il server CI md5 delle interfacce di servizio.

    
posta Colin M 27.04.2014 - 02:00
fonte

1 risposta

1

Prenderò in considerazione l'uso dei campi versione specifica e versione implementazione nel manifesto. La versione della specifica incrementerebbe le modifiche alle specifiche dell'interfaccia, mentre la versione di implementazione aumenterebbe su ogni build.

Tipicamente, la versione della specifica sarebbe qualcosa come 1.0 e la versione di implementazione aggiungerebbe qualcosa correlato alla build come 1.0.3432.

Guarda come JST è versionato per un esempio.

Nel dichiarare le tue dipendenze probabilmente vuoi evitare di utilizzare la corrispondenza esatta.

    
risposta data 28.04.2014 - 15:10
fonte

Leggi altre domande sui tag