um okkur
Hjá 1C þróum við ekki aðeins vettvang
Færslu
Við notum Maven oftast sem smíðakerfi fyrir Java forrit og í þessari stuttu grein viljum við tala um eitt af vandamálunum sem við þurftum að takast á við í skipulagsþróunarferlinu og um nálgunina sem gerði okkur kleift að sigrast á þessu. vandamál.
Forsendur og vinnuflæði
Vegna sérstakra þróunar í maven verkefnum okkar notum við töluvert mikið af einingum, ósjálfstæði og barnaverkefnum. Fjöldi pom-skráa í einu tré getur verið í tugum eða jafnvel hundruðum.
Það virðist: ekkert mál, þeir bjuggu það til einu sinni og gleymdu því. Ef þú þarft að breyta eða bæta við einhverju í öllum skrám í einu, þá eru fullt af þægilegum verkfærum í ritstjórum og IDE. Hver er algengasta reglulega breytingin á pom.xml? Við teljum að breytingar á útgáfum verkefnisins og ósjálfstæði. Kannski vill einhver rífast um þetta, en þetta er einmitt staðan hjá okkur. Ástæðan liggur í þeirri staðreynd að ásamt kjarnanum erum við samtímis að þróa mörg af okkar eigin bókasöfnum og fyrir stöðugan endurgerðanleika smíða- og prófunarniðurstaðna virðist notkun skyndimynda okkur ekki hentug nálgun. Af þessum sökum er nauðsynlegt að hækka útgáfunúmerið í verkefnum með hverri byggingu.
Einnig þarf verktaki af og til að byggja upp sína eigin útibú af bókasafni og athuga virkni þess gegn öllum ósjálfstæðum, sem hann þarf að breyta handvirkt um útgáfu þeirra allra.
Frumlausn
Með svona tíðum og mörgum útgáfubreytingum vil ég einfalda og gera ferlið sjálfvirkt innan CI. Þetta er þar sem þægilegt, vel þekkt viðbót kemur til bjargar. útgáfur-maven-viðbót - tengdu það og ræstu það
mvn -N útgáfur:set -DnewVersion=2.0.1
og Maven mun gera allt eins og það ætti: það mun keyra í gegnum stigveldið frá toppi til botns og kemur í stað allra útgáfur - fegurð! Nú er allt sem er eftir að leggja fram beiðni um drátt, samstarfsmenn munu fara yfir breytingarnar og þú getur fljótt tekið þátt í skottinu. Fljótt? Sama hvernig það er. Nokkur hundruð pom.xml til skoðunar og þetta er ekki talið með kóðann. Að auki er enginn óhultur fyrir því að sameina árekstra við svo mikinn fjölda breyttra skráa. Það skal tekið fram hér að í CI ferlinu verða útgáfubreytingar sjálfkrafa ásamt breytingum á virkni, en ekki einhvern veginn sérstaklega.
Nýir eiginleikar
Um tíma róuðumst við og sögðum upp, lifðum við svona þangað til strákarnir frá
mvn -Drevision=2.0.0 hreinn pakki
Gildi kerfiseigna ganga framar gildum sem skilgreind eru íeignir>.
Foreldrið
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-foreldri
Fyrsta CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
-SYNDAMYND
Afkomandi
4.0.0
org.apache.maven.ci
ci-foreldri
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-barn
...
Ef þú vilt byggja útgáfu 2.0.0-SNAPSHOT, notaðu þá bara
mvn -Drevision=2.0.0 hreinn pakki
Ef þú vilt gefa út, endurstilltu þá bara SNAPSHOT
mvn -Dchangelist= hreinn pakki
*Dæmin hér að ofan eru tekin úr
Harður veruleiki
Allt er gott og heilbrigt, það er kominn tími til að finna fyrir ánægju, en nei. Það kemur í ljós að þessi aðferð mun ekki virka fyrir uppsetningu og dreifingu, þar sem henni verður ekki skipt út í lýsingum á gripum sem birtar eru í geymslunni ${revision} á merkingu þess og maven mun ekki lengur skilja hvað það snýst um.
org.apache
apache
${revision}
Ljós í enda ganganna
Við þurfum að leita lausna á vandanum. Hefði getað bjargað ástandinu
Bæti viðbót við verkefnið
org.codehaus.mojo
flatten-maven-plugin
1.1.0
satt
leysaCiFriendliesOnly
fletja út
ferli-auðlindir
fletja út
fletja.hreinsa
hreint
hreint
Gert!
Hamingjusamlegur endir
Héðan í frá, til að breyta útgáfunni af öllu verkefninu og láta alla ósjálfstæði vita af því, þurfum við bara að breyta þættinumendurskoðun> bara í rótinni pom.xml. Ekki hundrað eða tvær af þessum skrám með sömu breytingu koma í endurskoðunina, heldur ein. Jæja, það er engin þörf á að nota útgáfur-maven-viðbót.
Heimild: www.habr.com