kuhusu sisi
Katika 1C sisi kuendeleza si tu jukwaa juu ya и , lakini pia programu za Java - haswa mazingira mapya ya maendeleo kulingana na Eclipse na seva ya mjumbe iliyounganishwa kwa undani na jukwaa - .
Entry
Mara nyingi sisi hutumia maven kama mfumo wa ujenzi wa programu za Java, na katika nakala hii fupi tungependa kuzungumza juu ya shida moja ambayo tulilazimika kukabiliana nayo katika mchakato wa kuandaa maendeleo, na juu ya njia ambayo ilituruhusu kushinda hii. tatizo.
Masharti na mtiririko wa kazi
Kwa sababu ya hali maalum ya maendeleo katika miradi yetu ya maven, tunatumia moduli nyingi, utegemezi na miradi ya watoto. Idadi ya faili za pom katika mti mmoja inaweza kuwa katika makumi au hata mamia.

Inaweza kuonekana: hakuna jambo kubwa, waliiumba mara moja na kusahau kuhusu hilo. Ikiwa unahitaji kubadilisha au kuongeza kitu katika faili zote mara moja, kuna zana nyingi zinazofaa katika wahariri na IDE. Ni mabadiliko gani ya kawaida ya kawaida kwa pom.xml? Tunaamini kuwa mabadiliko katika matoleo ya mradi na tegemezi. Labda mtu atataka kubishana na hii, lakini hii ndio hali halisi na sisi. Sababu iko katika ukweli kwamba, pamoja na kernel, tunatengeneza maktaba zetu nyingi wakati huo huo, na kwa kuzaliana mara kwa mara kwa matokeo ya ujenzi na upimaji, utumiaji wa snapshots hauonekani kwetu kama njia rahisi. Kwa sababu hii, ni muhimu kuongeza nambari ya toleo katika miradi na kila jengo.
Pia, mara kwa mara, msanidi programu anahitaji kujenga tawi lake la maktaba na kuangalia utendaji wake dhidi ya utegemezi wote, ambao lazima abadilishe toleo lao zote.
Suluhisho la awali
Kwa mabadiliko kama haya ya mara kwa mara na mengi, ninataka kurahisisha na kubinafsisha mchakato ndani ya CI. Hapa ndipo programu-jalizi inayofaa, inayojulikana sana inakuja kuwaokoa. matoleo-maven-plugin - iunganishe na uzindue
matoleo ya mvn -N:set -DnewVersion=2.0.1
na Maven atafanya kila kitu kama inavyopaswa: itapitia uongozi kutoka juu hadi chini, ikibadilisha matoleo yote - uzuri! Sasa kinachobakia ni kuongeza ombi la kuvuta, wenzake watakagua mabadiliko, na unaweza haraka kujiunga na shina. Haraka? Haijalishi ni jinsi gani. Mamia kadhaa pom.xml kwa ukaguzi, na hii sio kuhesabu nambari. Kwa kuongeza, hakuna mtu aliye salama kutokana na kuunganisha migogoro na idadi kubwa ya faili zilizobadilishwa. Ikumbukwe hapa kwamba katika mchakato wa CI, mabadiliko ya toleo hutokea moja kwa moja pamoja na mabadiliko katika utendaji, na si kwa namna fulani tofauti.
Vipengele vipya
Kwa muda tulitulia na, tukajiuzulu, tuliishi hivyo hadi watu kutoka Kuanzia toleo la 3.5.0-beta-1, Maven haikujumuisha usaidizi kwa wanaoitwa "vishika nafasi". Kiini cha vibadala hivi ni kwamba pom.xml badala ya dalili maalum ya toleo la mradi, vigezo hutumiwa ${marekebisho}, ${sha1} и ${changelist}. Thamani za mali hizi zenyewe zimewekwa ama kwenye kipengelemali>, au zinaweza kufafanuliwa kupitia mali ya mfumo
mvn -Drevision=2.0.0 kifurushi safi
Thamani za mali ya mfumo huchukua kipaumbele juu ya maadili yaliyofafanuliwa ndanimali>.
Mzazi
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-mzazi
Kwanza CI Kirafiki
${revision}${sha1}${changelist}
...
1.3.1
-PICHA
Mjukuu
4.0.0
org.apache.maven.ci
ci-mzazi
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-mtoto
...
Ikiwa unataka kujenga toleo la 2.0.0-SNAPSHOT, basi tumia tu
mvn -Drevision=2.0.0 kifurushi safi
Ikiwa unataka kutoa toleo, basi weka upya SNAPSHOT
mvn -Dchangelist= kifurushi safi
*Mifano hapo juu imechukuliwa kutoka kwenye tovuti ya Maven Apache Project
Ukweli mkali
Kila kitu ni nzuri na afya, ni wakati wa kujisikia hisia ya kuridhika, lakini hapana. Inabadilika kuwa njia hii haitafanya kazi kwa kusanikisha na kupeleka, kwani haitabadilishwa katika maelezo ya mabaki yaliyochapishwa kwenye ghala. ${marekebisho} juu ya maana yake na maven haitaelewa tena inahusu nini.
org.apache
apache
${marekebisho}
Mwangaza mwishoni mwa handaki
Tunahitaji kutafuta suluhisho la tatizo. Inaweza kuokoa hali hiyo . Programu-jalizi hii hutatua vigeu vyote kwenye pom, lakini wakati huo huo hukata maelezo mengine mengi ambayo yanahitajika tu wakati wa kusanyiko na haihitajiki wakati wa kuingiza mabaki yaliyochapishwa kwenye miradi mingine. Programu-jalizi pia "hunyoosha" utegemezi wote wa mzazi na mtoto, na kwa sababu hiyo, unapata pom ya gorofa ambayo inajumuisha kila kitu unachohitaji. Usumbufu ulikuwa kwamba hupunguza "ziada" nyingi sana, ambazo hazikufaa sisi kabisa. Baada ya kusoma habari juu ya ukuzaji wa programu-jalizi hii, iliibuka kuwa sisi sio pekee katika ulimwengu, na mnamo Agosti 2018, ombi la kuvuta liliundwa kwenye Github kwenye hazina ya programu-jalizi kwa hamu ya kuifanya iwezekane. kuamua sisi wenyewe jinsi ya "kuharibu" pom.xml. Watengenezaji walisikiliza sauti za wale wanaoteseka, na tayari mnamo Desemba, na kutolewa kwa toleo jipya la 1.1.0, hali mpya, solveCiFriendliesOnly, ilionekana kwenye programu-jalizi ya flatten-maven, ambayo ilikuwa inafaa zaidi kuliko hapo awali - inaondoka. pom.xml kama ilivyo, isipokuwa kwa kipengele na inaruhusu ${marekebisho}, ${sha1} и ${changelist}.
Inaongeza programu-jalizi kwenye mradi
org.codehaus.mojo
flatten-maven-plugin
1.1.0
kweli
solveCiFriendliesOnly
bapa
mchakato-rasilimali
bapa
bapa.safi
safi
safi
Imefanyika!
Mwisho wa furaha
Kuanzia sasa na kuendelea, ili kubadilisha toleo la mradi mzima na kuruhusu utegemezi wote kujua kuhusu hilo, tunahitaji tu kuhariri kipengele.marekebisho> katika mizizi tu pom.xml. Sio faili mia moja au mbili kati ya hizi zilizo na mabadiliko sawa hufika kwenye ukaguzi, lakini moja. Naam, hakuna haja ya kutumia matoleo-maven-plugin.
Chanzo: mapenzi.com
