dwarna
F'1C aħna niżviluppaw mhux biss pjattaforma
Dħul
Ħafna drabi nużaw maven bħala sistema ta' bini għall-applikazzjonijiet Java, u f'dan l-artikolu qasir nixtiequ nitkellmu dwar waħda mill-problemi li kellna niffaċċjaw fil-proċess tal-organizzazzjoni tal-iżvilupp, u dwar l-approċċ li ppermetta li negħlbu dan. problema.
Prerekwiżiti u fluss tax-xogħol
Minħabba l-ispeċifiċitajiet ta 'żvilupp fil-proġetti maven tagħna, nużaw pjuttost ħafna moduli, dipendenzi u proġetti tat-tfal. In-numru ta 'fajls pom f'siġra waħda jista' jkun fl-għexieren jew saħansitra mijiet.
Jidher: xejn kbir, ħolquha darba u nsewha. Jekk għandek bżonn tibdel jew iżżid xi ħaġa fil-fajls kollha f'daqqa, hemm ħafna għodod konvenjenti fl-edituri u l-IDEs. X'inhi l-aktar bidla regolari komuni għal pom.xml? Aħna nemmnu li l-bidliet fil-verżjonijiet tal-proġett u d-dipendenzi. Forsi xi ħadd irid jargumenta ma 'dan, iżda din hija eżattament is-sitwazzjoni magħna. Ir-raġuni tinsab fil-fatt li, flimkien mal-qalba, qed niżviluppaw simultanjament ħafna mil-libreriji tagħna stess, u għar-riproduċibbiltà kostanti tar-riżultati tal-bini u l-ittestjar, l-użu ta 'snapshots ma jidhirniex approċċ konvenjenti. Għal din ir-raġuni, huwa meħtieġ li jiżdied in-numru tal-verżjoni fil-proġetti ma 'kull bini.
Barra minn hekk, minn żmien għal żmien, żviluppatur jeħtieġ li jibni l-fergħa tiegħu stess ta 'librerija u jiċċekkja l-funzjonalità tagħha kontra d-dipendenzi kollha, li għalihom irid ibiddel manwalment il-verżjoni tagħhom kollha.
Soluzzjoni inizjali
B'bidliet ta 'verżjoni frekwenti u multipli bħal dawn, irrid nissimplifika u awtomat il-proċess fi ħdan CI. Dan huwa fejn plugin konvenjenti u magħruf jiġi għas-salvataġġ. versions-maven-plugin - qabbadha u tniedi
mvn -N verżjonijiet: sett -DnewVersion=2.0.1
u Maven se tagħmel kollox kif suppost: se tgħaddi mill-ġerarkija minn fuq għal isfel, u tissostitwixxi l-verżjonijiet kollha - sbuħija! Issa dak kollu li jibqa 'huwa li tqajjem talba ta' ġibda, il-kollegi se jirrevedu l-bidliet, u tista 'malajr tingħaqad mat-trunk. Malajr? Ma jimpurtax kif ikun. Ftit mijiet pom.xml għal reviżjoni, u dan mhux qed jgħodd il-kodiċi. Barra minn hekk, ħadd ma huwa sigur minn kunflitti ta' amalgamazzjoni ma 'numru daqshekk kbir ta' fajls mibdula. Għandu jiġi nnutat hawnhekk li fil-proċess CI, il-bidliet fil-verżjoni jseħħu awtomatikament flimkien ma 'bidliet fil-funzjonalità, u mhux b'xi mod separatament.
Opportunitajiet ġodda
Għal ftit ikkalmajna u, rassenjati, ngħixu hekk sakemm il-guys minn
mvn -Drevision=2.0.0 pakkett nadif
Il-valuri tal-proprjetà tas-sistema jieħdu preċedenza fuq il-valuri definiti fiproprjetajiet>.
Il-ġenitur
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-ġenitur
L-ewwel CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
-SNAPSHOT
Dixxendent
4.0.0
org.apache.maven.ci
ci-ġenitur
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-tifel
...
Jekk trid tibni l-verżjoni 2.0.0-SNAPSHOT, imbagħad uża biss
mvn -Drevision=2.0.0 pakkett nadif
Jekk trid tagħmel rilaxx, imbagħad reset SNAPSHOT
mvn -Dchangelist= pakkett nadif
*L-eżempji ta’ hawn fuq huma meħuda minn
Realtà ħarxa
Kollox tajjeb u b'saħħtu, wasal iż-żmien li tħoss sens ta 'sodisfazzjon, imma le. Jirriżulta li dan il-metodu mhux se jaħdem għall-installazzjoni u l-iskjerament, peress li mhux se jiġi sostitwit fid-deskrizzjonijiet tal-artifatti ppubblikati fir-repożitorju ${reviżjoni} fuq it-tifsira tiegħu u maven mhux se jibqa’ jifhem x’jiġri.
org.apache
apache
${reviżjoni}
Dawl fit-tarf ta’ mina
Irridu nfittxu soluzzjoni għall-problema. Seta’ jsalva s-sitwazzjoni
Żieda ta 'plugin mal-proġett
org.codehaus.mojo
flatten-maven-plugin
1.1.0
veru
resolveCiFriendliesOnly
iċċattja
riżorsi-proċess
iċċattja
iċċattja.naddaf
nadif
nadif
Magħmul!
Tmiem feliċi
Minn issa 'l quddiem, sabiex nibdlu l-verżjoni tal-proġett kollu u ngħarrfu d-dipendenzi kollha dwaru, irridu biss neditjaw l-elementreviżjoni> fl-għerq biss pom.xml. Mhux mija jew tnejn minn dawn il-fajls bl-istess bidla jaslu fir-reviżjoni, iżda wieħed. Ukoll, m'hemmx għalfejn tuża versions-maven-plugin.
Sors: www.habr.com