Kasinatian gamit ang flatten-maven-plugin aron pasimplehon ang pag-bersyon sa mga proyekto sa maven

О нас

Sa 1C naghimo kami dili lamang usa ka plataporma 1C: Negosyo sa C ++ ΠΈ JavaScript, apan usab ang mga aplikasyon sa Java - ilabina ang bag-ong kalamboan nga palibot Mga Himan sa Pagpauswag sa Negosyo base sa Eclipse ug usa ka messenger server nga lawom nga gisagol sa plataporma - Sistema sa Interaksyon.

entry

Kanunay namon nga gigamit ang maven ingon usa ka sistema sa pagtukod alang sa mga aplikasyon sa Java, ug niining mubo nga artikulo gusto namon nga hisgutan ang usa sa mga problema nga kinahanglan namon atubangon sa proseso sa pag-organisar sa pag-uswag, ug bahin sa pamaagi nga nagtugot kanamo sa pagbuntog niini. problema.

Mga kinahanglanon ug dagan sa trabaho

Tungod sa mga detalye sa pag-uswag sa among maven nga mga proyekto, gigamit namon ang daghang mga module, dependency ug proyekto sa bata. Ang gidaghanon sa mga pom file sa usa ka kahoy mahimong sa napulo o bisan gatosan.

Kasinatian gamit ang flatten-maven-plugin aron pasimplehon ang pag-bersyon sa mga proyekto sa maven

Morag: dili dako, gibuhat nila kini sa makausa ug nakalimtan kini. Kung kinahanglan nimo nga usbon o idugang ang usa ka butang sa tanan nga mga file sa usa ka higayon, adunay daghang mga kombenyente nga himan sa mga editor ug IDE. Unsa ang kasagaran nga regular nga pagbag-o sa pom.xml? Kami nagtuo nga ang mga pagbag-o sa mga bersyon sa proyekto ug mga dependency. Tingali adunay gusto nga makiglalis niini, apan kini gyud ang kahimtang sa amon. Ang rason naa sa kamatuoran nga, uban sa kernel, dungan nga nagpalambo kami sa daghan sa among kaugalingon nga mga librarya, ug alang sa makanunayon nga reproducibility sa pagtukod ug mga resulta sa pagsulay, ang paggamit sa mga snapshot ingon og dili sayon ​​​​alang kanamo. Tungod niini nga hinungdan, kinahanglan nga ipataas ang numero sa bersyon sa mga proyekto sa matag pagtukod.

Usab, matag karon ug unya, ang usa ka developer kinahanglan nga magtukod sa iyang kaugalingon nga sanga sa usa ka librarya ug susihon ang pagpaandar niini batok sa tanan nga mga dependency, diin kinahanglan niya nga mano-mano nga usbon ang bersyon sa tanan niini.

Inisyal nga solusyon

Sa ingon ka kanunay ug daghang mga pagbag-o sa bersyon, gusto nako nga pasimplehon ug i-automate ang proseso sa sulod sa CI. Dinhi diin ang usa ka kombenyente, bantog nga plugin moabut aron sa pagluwas. versions-maven-plugin - ikonektar kini ug ilunsad kini

mvn -N nga mga bersyon: set -DnewVersion=2.0.1

ug buhaton ni Maven ang tanan nga kinahanglan: kini modagan sa hierarchy gikan sa taas hangtod sa ubos, ilisan ang tanan nga mga bersyon - katahum! Karon ang nahabilin mao ang pagpataas sa usa ka hangyo sa pagbitad, susihon sa mga kauban ang mga pagbag-o, ug dali ka makaapil sa punoan. Dali? Bisag unsaon. Usa ka gatos pom.xml alang sa pagrepaso, ug kini wala mag-ihap sa code. Dugang pa, walay usa nga luwas gikan sa paghiusa sa mga panagbangi sa ingon ka daghan nga nabag-o nga mga file. Kinahanglan nga hinumdoman dinhi nga sa proseso sa CI, ang mga pagbag-o sa bersyon awtomatiko nga mahitabo kauban ang mga pagbag-o sa pagpaandar, ug dili sa usa ka paagi nga gilain.

Bag-ong mga Kinaiya

Sa makadiyot nagkalma mi ug, ni-resign, nagkinabuhi kami nga ingon niana hangtod sa mga lalaki gikan Maven Apache Project Ang Maven, sugod sa bersyon 3.5.0-beta-1, wala maglakip sa suporta alang sa gitawag nga "mga placeholder" sa mga bersyon. Ang diwa niini nga mga kapuli mao kana pom.xml imbes usa ka piho nga timailhan sa bersyon sa proyekto, gigamit ang mga variable ${rebisyon}, ${sha1} ΠΈ ${listahan sa kausaban}. Ang mga kantidad sa kini nga mga kabtangan mismo gitakda sa elementomga kabtangan>, o mahimo sila nga gihubit pinaagi sa usa ka kabtangan sa sistema

mvn -Drevision=2.0.0 limpyo nga pakete

Ang mga kantidad sa kabtangan sa sistema nag-una sa mga kantidad nga gihubit samga kabtangan>.

Ginikanan

  4.0.0
  
    org.apache
    apache
    18
  
  org.apache.maven.ci
  ci-ginikanan
  Unang CI Friendly
  ${revision}${sha1}${changelist}
  ...
  
    1.3.1
    -SNAPSHOT
    
  


Kaliwat

  4.0.0
  
    org.apache.maven.ci
    ci-ginikanan
    ${revision}${sha1}${changelist}
  
  org.apache.maven.ci
  ci-bata
   ...

Kung gusto nimo magtukod og bersyon 2.0.0-SNAPSHOT, unya gamita lang

    mvn -Drevision=2.0.0 limpyo nga pakete

Kung gusto nimo maghimo usa ka pagpagawas, i-reset lang ang SNAPSHOT

    mvn -Dchangelist= limpyo nga pakete

*Ang mga pananglitan sa ibabaw gikuha gikan sa mga artikulo sa website sa Maven Apache Project

Hait nga kamatuoran

Ang tanan maayo ug himsog, panahon na nga mobati og katagbawan, apan dili. Kini nahimo nga kini nga pamaagi dili molihok alang sa pag-install ug pag-deploy, tungod kay dili kini mapulihan sa mga paghubit sa mga artifact nga gipatik sa repository. ${rebisyon} sa kahulogan niini ug dili na masabtan ni maven kung unsa kini.


    org.apache
    apache
    ${rebisyon}

Usa ka suga sa katapusan sa usa ka tunel

Kinahanglan natong pangitaon ang solusyon sa problema. Makaluwas unta sa sitwasyon flatten-maven-plugin. Gisulbad niini nga plugin ang tanan nga mga baryable sa pom, apan sa samang higayon giputol ang daghang uban pang impormasyon nga gikinahanglan lamang sa panahon sa asembliya ug dili gikinahanglan sa pag-import sa gipatik nga mga artifact ngadto sa ubang mga proyekto. Ang plugin usab "nagtul-id" sa tanan nga mga dependency sa ginikanan-anak, ug isip resulta, makakuha ka og flat pom nga naglakip sa tanan nga imong gikinahanglan. Ang kahasol mao nga giputol niini ang sobra nga "dugang", nga dili gyud angay kanamo. Pagkahuman sa pagtuon sa kasayuran bahin sa pag-uswag sa kini nga plugin, nahibal-an nga dili ra kami ang naa sa uniberso, ug kaniadtong Agosto 2018, usa ka pull-request ang gihimo sa Github sa plugin repository nga adunay tinguha nga mahimo kini nga posible. aron mahibal-an sa among kaugalingon kung giunsa "pagdaot" ang pom.xml. Ang mga developers naminaw sa mga tingog sa mga nag-antos, ug na sa Disyembre, uban sa pagpagawas sa bag-ong bersyon 1.1.0, usa ka bag-o nga mode, resolveCiFriendliesOnly, nagpakita sa flatten-maven-plugin, nga mao ang mas angay kay sa walay katapusan - kini mobiya. pom.xml sama sa, gawas sa elemento ug nagtugot ${rebisyon}, ${sha1} ΠΈ ${listahan sa kausaban}.

Pagdugang usa ka plugin sa proyekto


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      tinuod
      solveCiFriendliesOnly
    
    
      
        patagon
        proseso-mga kapanguhaan
        
          patagon
        
      
      
        patagon.limpyo
        limpyo
        
          limpyo
        
      
    
  

Nahimo na!

Malipayon nga katapusan

Sukad karon, aron mabag-o ang bersyon sa tibuuk nga proyekto ug ipahibalo sa tanan nga mga dependency bahin niini, kinahanglan ra naton i-edit ang elementorebisyon> sa ugat lang pom.xml. Dili usa ka gatos o duha niini nga mga file nga adunay parehas nga pagbag-o ang moabut sa pagrepaso, apan usa. Aw, dili kinahanglan nga gamiton versions-maven-plugin.

Source: www.habr.com

Idugang sa usa ka comment