Pangalaman nganggo flatten-maven-plugin pikeun nyederhanakeun versi dina proyék maven

ngeunaan urang

Di 1C kami ngembangkeun henteu ngan ukur platform 1C: Perusahaan dina C ++ и JavaScript, tapi ogé aplikasi Java - hususna lingkungan ngembangkeun anyar Parabot Pangwangunan perusahaan dumasar kana Eclipse sareng server utusan anu terpadu pisan sareng platform - Systems Interaksi.

asup

Kami paling sering nganggo maven salaku sistem ngawangun pikeun aplikasi Java, sareng dina tulisan pondok ieu kami hoyong ngobrol ngeunaan salah sahiji masalah anu kedah urang hadapi dina prosés pangatur pangwangunan, sareng ngeunaan pendekatan anu ngamungkinkeun urang pikeun ngatasi ieu. masalah.

Prasarat sareng alur kerja

Kusabab spésifik pangwangunan dina proyék maven kami, kami nganggo seueur modul, kagumantungan sareng proyék anak. Jumlah file pom dina hiji tangkal bisa dina puluhan atawa malah ratusan.

Pangalaman nganggo flatten-maven-plugin pikeun nyederhanakeun versi dina proyék maven

Ieu bakal sigana: euweuh deal badag, aranjeunna dijieun sakali sarta poho ngeunaan eta. Upami anjeun kedah ngarobih atanapi nambihan hiji hal dina sadaya file sakaligus, aya seueur alat anu merenah dina éditor sareng IDE. Naon parobahan biasa paling umum pikeun pom.xml? Kami yakin yén parobahan dina versi proyék sareng kagumantungan. Panginten aya anu badé ngabantah ieu, tapi ieu mangrupikeun kaayaan urang. Alesanna perenahna di kanyataan yén, babarengan jeung kernel, urang sakaligus ngamekarkeun loba perpustakaan urang sorangan, sarta pikeun reproducibility konstan ngawangun sarta nguji hasil, pamakéan snapshots teu sigana pendekatan merenah. Ku sabab kitu, perlu pikeun ngangkat jumlah versi dina proyék kalawan unggal wangunan.

Ogé, ti jaman ka jaman, pamekar kedah ngawangun cabang perpustakaan sorangan sareng pariksa pungsionalitasna ngalawan sadaya katergantungan, dimana anjeunna kedah ngarobih versi sadayana sacara manual.

Solusi awal

Kalayan parobihan vérsi anu sering sareng sababaraha, kuring hoyong nyederhanakeun sareng ngajadikeun otomatis prosés dina CI. Ieu dimana a merenah, well-dipikawanoh plugin datang ka nyalametkeun teh. versions-maven-plugin - sambungkeun sareng peluncuran éta

Vérsi mvn -N: set -DnewVersion = 2.0.1

sarta Maven bakal ngalakukeun sagalana sakumaha sakuduna: eta bakal ngajalankeun ngaliwatan hirarki ti luhur ka handap, ngaganti sakabeh versi - kageulisan! Ayeuna sadayana anu tetep nyaéta pikeun ngangkat pamundut tarik, kolega bakal marios parobihan éta, sareng anjeun tiasa gancang ngiringan kalapa. Gancang? Henteu masalah kumaha éta. Sababaraha ratus pom.xml pikeun review, sarta ieu teu cacah kode. Salaku tambahan, teu aya anu aman tina ngahijikeun konflik sareng sajumlah ageung file anu dirobih. Ieu kudu dicatet yén dina prosés CI, parobahan vérsi lumangsung sacara otomatis babarengan jeung parobahan dina pungsionalitasna, sarta teu kumaha bae misah.

Fitur anyar

Sakedap kami tenang sareng, pasrah, kami hirup sapertos kitu dugi ka budak lalaki Proyék Maven Apache Dimimitian ti versi 3.5.0-beta-1, Maven teu kaasup rojongan pikeun disebut "placeholders". Hakekat substitutes ieu éta pom.xml tinimbang indikasi husus tina versi proyék, variabel dipaké ${révisi}, ${sha1} и ${daftar robah}. Nilai sipat ieu sorangan diatur boh dina unsursipat>, atawa maranéhna bisa dihartikeun ngaliwatan sipat sistem

mvn -Drevision = 2.0.0 pakét bersih

Nilai sipat sistem diutamakeun tina nilai anu didefinisikeun dinasipat>.

kolot

  4.0.0
  
    org.apache
    apache
    18
  
  org.apache.maven.ci
  ci-indungna
  Kahiji CI Friendly
  ${révisi}${sha1}${changelist}
  ...
  
    1.3.1
    - GAMBAR
    
  


Katurunan

  4.0.0
  
    org.apache.maven.ci
    ci-indungna
    ${révisi}${sha1}${changelist}
  
  org.apache.maven.ci
  ci-anak
   ...

Upami anjeun hoyong ngawangun versi 2.0.0-SNAPSHOT, teras nganggo

    mvn -Drevision = 2.0.0 pakét bersih

Upami anjeun hoyong ngadamel pelepasan, teras reset SNAPSHOT

    mvn -Dchangelist = pakét bersih

* Conto di luhur dicokot tina tulisan dina ramatloka Maven Apache Project

Kanyataan karasa

Sagalana téh alus tur cageur, éta waktu ngarasa rasa kapuasan, tapi euweuh. Tétéla yén métode ieu moal jalan mun install sarta nyebarkeun, sabab moal diganti dina déskripsi artefak diterbitkeun dina gudang. ${révisi} dina harti na maven moal deui ngartos naon éta sadayana ngeunaan.


    org.apache
    apache
    ${révisi}

Lampu di tungtung torowongan

Urang kudu néangan solusi pikeun masalah. Bisa nyalametkeun kaayaan rarata-maven-plugin. Plugin ieu ngabéréskeun sadaya variabel dina pom, tapi dina waktos anu sami motong seueur inpormasi anu sanés ngan ukur diperyogikeun nalika ngarakit sareng henteu diperyogikeun nalika ngimpor artefak anu diterbitkeun kana proyék sanés. Plugin ogé "ngaluruskeun" sadayana katergantungan kolot-anak, sareng salaku hasilna, anjeun nampi pom datar anu kalebet sadayana anu anjeun peryogikeun. Kasulitan ieu nya éta motong kaluar teuing "tambahan", nu teu cocog urang pisan. Saatos ngulik inpormasi ngeunaan pamekaran plugin ieu, tétéla yén urang sanés ngan ukur di jagat raya, sareng dina bulan Agustus 2018, pamenta-tarik diciptakeun dina Github dina gudang plugin kalayan kahayang pikeun ngajantenkeun mungkin. pikeun nangtukeun sorangan kumaha carana "ngarusak" pom.xml. Pamekar ngadangukeun sora jalma anu sangsara, sareng parantos dina bulan Désémber, kalayan sékrési vérsi énggal 1.1.0, mode énggal, resolveCiFriendliesOnly, muncul dina flatten-maven-plugin, anu langkung cocog ti kantos - éta daun. pom.xml sakumaha anu kasebut, iwal unsur sarta ngidinan ${révisi}, ${sha1} и ${daftar robah}.

Nambahkeun plugin kana proyék


  
    org.codehaus.mojo
    rarata-maven-plugin
    1.1.0
    
      leres
      resolveCiFriendliesOnly
    
    
      
        ngaratakeun
        prosés-sumberdaya
        
          ngaratakeun
        
      
      
        rata.bersih
        beresih
        
          beresih
        
      
    
  

Réngsé!

Bingah tungtung

Ti ayeuna, dina raraga ngarobah vérsi sakabéh proyék jeung hayu sadaya kagumantungan nyaho ngeunaan eta, urang ngan perlu ngédit unsurrévisi> ngan dina akar pom.xml. Henteu saratus atanapi dua file ieu kalayan parobihan anu sami dugi ka ulasan, tapi hiji. Nya, teu kedah dianggo versions-maven-plugin.

sumber: www.habr.com

Tambahkeun komentar