um okkur
Hjá 1C þróum við ekki aðeins vettvang á и , en einnig Java forrit - einkum nýja þróunarumhverfið byggt á Eclipse og boðberaþjóni sem er djúpt samþættur pallinum - .
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á Frá og með útgáfu 3.5.0-beta-1, var Maven ekki með stuðning fyrir svokallaða „staðsetningar“. Kjarninn í þessum staðgöngum er sá pom.xml í stað tiltekinnar vísbendingar um verkefnisútgáfu eru notaðar breytur ${revision}, ${sha1} и ${changelist}. Gildi þessara eiginleika sjálfra eru stillt annað hvort í frumefninueignir>, eða þeir geta verið skilgreindir í gegnum kerfiseiginleika
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 á vefsíðu Maven Apache Project
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 . Þessi viðbót leysir allar breytur í pom, en klippir á sama tíma út fullt af öðrum upplýsingum sem aðeins er þörf á meðan á samsetningu stendur og er ekki þörf þegar þú flytur inn birta gripi í önnur verkefni. Viðbótin „réttir líka út“ alla ósjálfstæði foreldra og barna og fyrir vikið færðu flatan pom sem inniheldur allt sem þú þarft. Óþægindin voru þau að það sleppir of miklu „auka“ sem hentaði okkur alls ekki. Eftir að hafa rannsakað upplýsingarnar um þróun þessa viðbótar kom í ljós að við erum ekki þau einu í alheiminum og aftur í ágúst 2018 var búið til pull-beiðni á Github í viðbótageymslunni með löngun til að gera það mögulegt til að ákvarða á eigin spýtur hvernig eigi að „spilla“ pom.xml. Hönnuðir hlustuðu á raddir þeirra sem þjáðust og þegar í desember, með útgáfu nýju útgáfunnar 1.1.0, birtist nýr hamur, resolveCiFriendliesOnly, í flatten-maven-plugin, sem hentaði betur en nokkru sinni fyrr - hann fer pom.xml eins og það er, nema frumefnið og leyfir ${revision}, ${sha1} и ${changelist}.
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
