Quelli di noi
À 1C sviluppemu micca solu una piattaforma
Plus
U più spessu usamu Maven cum'è un sistema di custruzzione per l'applicazioni Java, è in questu brevi articulu vulemu parlà di unu di i prublemi chì avemu avutu à affruntà in u prucessu di urganizazione di u sviluppu, è di l'approcciu chì ci hà permessu di superà questu. prublema.
Prerequisiti è flussu di travagliu
A causa di e specificità di u sviluppu in i nostri prughjetti maven, usemu assai moduli, dipendenze è prughjetti di i zitelli. U numaru di schedarii pom in un arbulu pò esse in decine o ancu centu.
Sembra: micca grande affare, anu creatu una volta è s'hè scurdatu. Sè avete bisognu di cambià o aghjunghje qualcosa in tutti i schedari à una volta, ci sò assai strumenti convenienti in editori è IDE. Chì ghjè u cambiamentu regulare più cumuni à pom.xml? Cridemu chì i cambiamenti in e versioni di u prughjettu è e dipendenze. Forsi qualcunu vulete discutiri cun questu, ma questu hè esattamente a situazione cun noi. U mutivu si trova in u fattu chì, cù u kernel, avemu sviluppatu simultaneamente assai di e nostre biblioteche, è per a riproducibilità constante di i risultati di custruzzione è teste, l'usu di snapshots ùn ci pare micca un accostu còmuda. Per quessa, hè necessariu di elevà u numeru di versione in i prughjetti cù ogni custruzzione.
Inoltre, da u tempu à u tempu, un sviluppatore hà bisognu di custruisce u so propiu ramu di una biblioteca è verificate a so funziunalità contr'à tutte e dipendenze, per quale hà da cambià manualmente a versione di tutti.
Soluzione iniziale
Cù tali cambiamenti frequenti è multiplici di versione, vogliu simplificà è automatizà u prucessu in CI. Questu hè induve un plugin còmuda, ben cunnisciutu, vene in salvezza. versions-maven-plugin - cunnette lu è lanciari lu
mvn -N versioni: set -DnewVersion=2.0.1
è Maven farà tuttu ciò chì deve: correrà à traversu a ghjerarchia da cima à fondu, rimpiazzà tutte e versioni - bellezza! Avà tuttu ciò chì resta hè di elevà una dumanda di pull, i culleghi riviseranu i cambiamenti, è pudete unisce rapidamente à u troncu. Prestu? Ùn importa micca cumu hè. Un paru di centu pom.xml per rivisione, è questu ùn hè micca cuntatu u codice. In più, nimu hè salvu da cunflitti di fusione cù un gran numaru di schedarii cambiati. Ci hè da nutà quì chì in u prucessu CI, i cambiamenti di versione sò automaticamente cù i cambiamenti di funziunalità, è micca in modu separatu.
Novità
Per un tempu ci calmu è, essendu rassegnati, avemu campatu cusì finu à chì i picciotti di
mvn -Drevision=2.0.0 pacchettu pulito
I valori di pruprietà di u sistema anu a precedenza annantu à i valori definiti inPruprietà>.
Parente
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-parent
Prima CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
-STANTANEA
Discendente
4.0.0
org.apache.maven.ci
ci-parent
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-figliolu
...
Se vulete custruisce a versione 2.0.0-SNAPSHOT, allora solu aduprà
mvn -Drevision=2.0.0 pacchettu pulito
Se vulete fà una liberazione, allora solu resettate SNAPSHOT
mvn -Dchangelist= pacchettu pulito
* L'esempii sopra sò pigliati da
A dura realità
Tuttu hè bonu è sanu, hè ora di sente un sensu di satisfaczione, ma micca. Risulta chì stu metudu ùn funziona micca per installà è implementà, postu chì ùn serà micca rimpiazzatu in e descrizzioni di l'artefatti publicati in u repository. ${revision} nant'à u so significatu è maven ùn capirà più ciò chì si tratta.
org.apache
apache
${revision}
Una luce à a fine di un tunnel
Avemu bisognu di circà una suluzione à u prublema. Puderia salvà a situazione
Aghjunghjendu un plugin à u prugettu
org.codehaus.mojo
flatten-maven-plugin
1.1.0
veru
risolve CiFriendliesOnly
appiattà
prucessu-risorse
appiattà
appiattà.pulita
pulita
pulita
Fattu!
Felice fine
Da avà, per cambià a versione di u prughjettu sanu è chì tutte e dipendenze cunnoscenu, avemu solu bisognu di edità l'elementu.rivisione> solu in a radica pom.xml. Micca centu o dui di sti schedari cù u listessu cambiamentu arrivanu à a rivista, ma unu. Ebbè, ùn ci hè bisognu di utilizà versions-maven-plugin.
Source: www.habr.com