Supponiamo che tu abbia un set di app web che usano varie versioni di una libreria comune come Spring. Ho una libreria di business logic che usa anche questa libreria comune. Finora nessun problema, ma lungo il cammino una versione della libreria comune ha cambiato una definizione astratta della classe e ha rotto la libreria logica aziendale.Rilevamento di dipendenze incompatibili in Maven?
così finisco con un tavolo versione compatibile che assomiglia a questo ...
business-lib-version | common-lib-version
1.0 | 1.0
1.1 | 2.0
non voglio la versione business lib per guidare la versione lib comuni nell'applicazione consumare. Piuttosto mi piacerebbe scegliere la versione corretta del business lib basato sulla lib comune. Sono abbastanza sicuro che non è possibile, quindi passo alla domanda principale.
C'è un modo elegante per rilevare incompatibilità di versione? Idealmente mi piacerebbe una soluzione di tempo di costruzione, altrimenti una soluzione di run-time potrebbe essere ok.
Ho provato a utilizzare gli intervalli di versioni in Maven ma questo ci ha causato molti problemi a causa di come Maven ordina le versioni in formati di versione non standard e abbiamo anche avuto vari problemi nella risoluzione degli intervalli correttamente al momento della compilazione.
Per "incompatibilità" intendete semplicemente versioni diverse o rottura effettiva? –
@DaveNewton: uno o entrambi in questo punto. Sto semplicemente cercando la soluzione di meno sorprese. –