Pata uzoefu wa kutumia programu-jalizi ya flatten-maven ili kurahisisha uchapishaji katika miradi ya maven

kuhusu sisi

Katika 1C sisi kuendeleza si tu jukwaa 1C: Biashara juu ya C ++ ΠΈ JavaScript, lakini pia programu za Java - haswa mazingira mapya ya maendeleo Zana za Maendeleo ya Biashara kulingana na Eclipse na seva ya mjumbe iliyounganishwa kwa undani na jukwaa - Mifumo ya Mwingiliano.

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.

Pata uzoefu wa kutumia programu-jalizi ya flatten-maven ili kurahisisha uchapishaji katika miradi ya maven

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 Mradi wa Apache wa Maven 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 nakala 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 flatten-maven-plugin. 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

Kuongeza maoni