maven ပရောဂျက်များတွင်ဗားရှင်းကိုရိုးရှင်းစေရန် flatten-maven-plugin ကိုအသုံးပြုခြင်းအတွေ့အကြုံ

ကြှနျုပျတို့အကွောငျး

1C တွင် ကျွန်ုပ်တို့သည် platform တစ်ခုသာမကဘဲ ဖွံ့ဖြိုးတိုးတက်သည်။ 1C: လုပ်ငန်း အပေါ် C ++ и JavaScript ကိုအထူးသဖြင့် Java အက်ပ်လီကေးရှင်းများ - အထူးသဖြင့် ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်အသစ် လုပ်ငန်းဖွံ့ဖြိုးတိုးတက်ရေး ကိရိယာများ Eclipse နှင့် messenger server ကို အခြေခံ၍ platform နှင့် နက်ရှိုင်းစွာ ပေါင်းစပ်ထားသည် - အပြန်အလှန်ဆက်သွယ်မှုစနစ်များ.

entry ကို

ကျွန်ုပ်တို့အများစုသည် Java အပလီကေးရှင်းများအတွက် တည်ဆောက်မှုစနစ်အဖြစ် maven ကိုအသုံးပြုကြပြီး၊ ဤဆောင်းပါးတိုတွင် စည်းရုံးရေးဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်တွင် ကျွန်ုပ်တို့ရင်ဆိုင်ခဲ့ရသည့်ပြဿနာများထဲမှတစ်ခုအကြောင်းနှင့် ၎င်းကိုကျော်လွှားနိုင်စေမည့်ချဉ်းကပ်မှုအကြောင်း ဆွေးနွေးလိုပါသည်။ ပြဿနာ။

လိုအပ်ချက်များနှင့် အလုပ်အသွားအလာများ

ကျွန်ုပ်တို့၏ maven ပရောဂျက်များတွင် ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ တိကျသောအချက်များကြောင့်၊ ကျွန်ုပ်တို့သည် မော်ဂျူးများ၊ မှီခိုမှုများနှင့် ကလေးပရောဂျက်များစွာကို အသုံးပြုပါသည်။ သစ်ပင်တစ်ပင်ရှိ pom ဖိုင်အရေအတွက်သည် ဆယ်ဂဏန်း သို့မဟုတ် ရာဂဏန်းအထိ ရှိနိုင်သည်။

maven ပရောဂျက်များတွင်ဗားရှင်းကိုရိုးရှင်းစေရန် flatten-maven-plugin ကိုအသုံးပြုခြင်းအတွေ့အကြုံ

ကြီးကြီးမားမားတော့ မဟုတ်ဘူး၊ သူတို့က အဲဒါကို တစ်ခါတည်း ဖန်တီးပြီး မေ့သွားပုံရတယ်။ ဖိုင်များအားလုံးတွင် တစ်ခုခုကို တစ်ပြိုင်နက် ပြောင်းလဲရန် သို့မဟုတ် ထည့်ရန် လိုအပ်ပါက၊ တည်းဖြတ်သူများနှင့် IDE များတွင် အဆင်ပြေသောကိရိယာများစွာရှိသည်။ pom.xml သို့ အဖြစ်အများဆုံး ပုံမှန်ပြောင်းလဲမှုကား အဘယ်နည်း။ ပရောဂျက်ဗားရှင်းများနှင့် မှီခိုမှုများတွင် ပြောင်းလဲမှုများရှိသည်ဟု ကျွန်ုပ်တို့ယုံကြည်သည်။ တစ်စုံတစ်ယောက်သည် ဤကိစ္စကို ငြင်းခုံချင်ပေလိမ့်မည်၊ သို့သော် ဤသည်မှာ ကျွန်ုပ်တို့နှင့် အတိအကျပင်။ အကြောင်းရင်းမှာ kernel နှင့်အတူ၊ ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ကိုယ်ပိုင်စာကြည့်တိုက်များစွာကို တစ်ပြိုင်နက်ဖန်တီးနေပြီး တည်ဆောက်ခြင်းနှင့် စမ်းသပ်ခြင်းရလဒ်များ၏ အဆက်မပြတ်ပြန်လည်ထုတ်လုပ်နိုင်စေရန်အတွက် လျှပ်တစ်ပြက်ရိုက်ချက်များကို အသုံးပြုခြင်းသည် ကျွန်ုပ်တို့အတွက် အဆင်ပြေသောချဉ်းကပ်ပုံမပေါ်သောကြောင့်ဖြစ်သည်။ ထို့ကြောင့်၊ တည်ဆောက်မှုတစ်ခုစီတိုင်းရှိ ပရောဂျက်များတွင် ဗားရှင်းနံပါတ်ကို မြှင့်တင်ရန် လိုအပ်ပါသည်။

ထို့အပြင်၊ အခါအားလျော်စွာ၊ ဆော့ဖ်ဝဲရေးသားသူတစ်ဦးသည် ၎င်း၏ကိုယ်ပိုင်စာကြည့်တိုက်တစ်ခုတည်ဆောက်ရန်နှင့် မှီခိုမှုအားလုံးနှင့်ဆိုင်သော ၎င်း၏လုပ်ဆောင်နိုင်စွမ်းကို စစ်ဆေးရန် လိုအပ်ပြီး ၎င်းတို့အားလုံး၏ဗားရှင်းကို သူကိုယ်တိုင်ပြောင်းလဲရန် လိုအပ်သည်။

ကနဦးဖြေရှင်းချက်

ထိုသို့သော မကြာခဏ နှင့် ဗားရှင်း အများအပြား ပြောင်းလဲမှု နှင့်အတူ၊ ကျွန်ုပ်သည် CI အတွင်း လုပ်ငန်းစဉ်ကို ရိုးရှင်းစေပြီး အလိုအလျောက် လုပ်ဆောင်လိုပါသည်။ ဤနေရာတွင် အဆင်ပြေသော၊ လူသိများသော ပလပ်အင်တစ်ခုသည် ကယ်တင်ရာရောက်ပါသည်။ ဗားရှင်း-maven-ပလပ်အင် - ၎င်းကိုချိတ်ဆက်ပြီးဖွင့်ပါ။

mvn -N ဗားရှင်းများ-သတ်မှတ် -DnewVersion=2.0.1

Maven သည် ဖြစ်သင့်သည်အတိုင်း အရာအားလုံးကို လုပ်ဆောင်ပေးလိမ့်မည်- ၎င်းသည် ဗားရှင်းအားလုံးကို အစားထိုးပြီး အထက်မှအောက်သို့ လည်ပတ်သွားမည်ဖြစ်သည်။ ယခု ကျန်ရှိနေသည့်အရာအားလုံးသည် ဆွဲတင်တောင်းဆိုမှုကို မြှင့်တင်ရန်ဖြစ်သည်၊ လုပ်ဖော်ကိုင်ဖက်များသည် အပြောင်းအလဲများကို ပြန်လည်သုံးသပ်မည်ဖြစ်ပြီး သင်သည် အမြန်အသင်းတွင် ပါဝင်နိုင်သည်။ မြန်မြန်? ဘယ်လိုပဲနေပါစေ။ နှစ်သိန်း pom.xml ပြန်လည်သုံးသပ်ရန်၊ ၎င်းသည် ကုဒ်ကို ထည့်မတွက်ပါ။ ထို့အပြင်၊ ဤကဲ့သို့သော ပြောင်းလဲထားသောဖိုင်အများအပြားနှင့် ပေါင်းစပ်ပဋိပက္ခများမှ ကင်းဝေးမည်မဟုတ်ပါ။ ဤနေရာတွင် မှတ်သားထားသင့်သည်မှာ CI လုပ်ငန်းစဉ်တွင်၊ လုပ်ဆောင်နိုင်စွမ်းပြောင်းလဲမှုများနှင့်အတူ ဗားရှင်းပြောင်းလဲမှုများသည် သီးခြားစီမဟုတ်ဘဲ တစ်နည်းနည်းဖြင့် ဖြစ်ပေါ်လာကြောင်း ဤနေရာတွင် သတိပြုသင့်သည်။

အသစ်သောအင်္ဂါရပ်များ

ခဏတာ ငြိမ်သက်ပြီး ကိုယ့်ကိုကိုယ် နှုတ်ထွက်ပြီး ယောက်ျားတွေ မရောက်မချင်း ဒီအတိုင်းနေခဲ့တယ်။ Maven Apache ပရောဂျက် ဗားရှင်း 3.5.0-beta-1 မှစတင်၍ Maven သည် "နေရာချထားသူများ" ဟုခေါ်သော ပံ့ပိုးမှုမပါဝင်ပါ။ ဒီအစားထိုးတွေရဲ့ အနှစ်သာရကတော့ အဲဒါပါပဲ။ pom.xml ပရောဂျက်ဗားရှင်း၏ တိကျသောညွှန်ပြချက်အစား ကိန်းရှင်များကို အသုံးပြုသည်။ ${revision}, ${sha1} и ${ပြောင်းလဲမှုစာရင်း}. ဤဂုဏ်သတ္တိများ၏တန်ဖိုးများကိုယ်တိုင်ဒြပ်စင်၌သော်လည်းကောင်းသတ်မှတ်ထားသည်။ဂုဏ်သတ္တိများ> သို့မဟုတ် ၎င်းတို့ကို စနစ်ပိုင်ဆိုင်မှုတစ်ခုမှတဆင့် သတ်မှတ်နိုင်သည်။

mvn -Drevision=2.0.0 သန့်ရှင်းသော ပက်ကေ့ချ်

စနစ်ပိုင်ဆိုင်မှုတန်ဖိုးများသည် သတ်မှတ်ထားသောတန်ဖိုးများထက် ဦးစားပေးပါသည်။ဂုဏ်သတ္တိများ>.

မိဘ

  4.0.0
  
    org.apache
    apache
    ၀.၁.၀.၁
  
  org.apache.maven.ci
  ci-မိဘ
  ပထမဆုံး CI က အဆင်ပြေတယ်။
  ${revision}${sha1}${ပြောင်းလဲမှုစာရင်း}
  ...
  
    1.3.1
    -SNAPSHOT
    
  


သားစဉ်မြေးဆက်

  4.0.0
  
    org.apache.maven.ci
    ci-မိဘ
    ${revision}${sha1}${ပြောင်းလဲမှုစာရင်း}
  
  org.apache.maven.ci
  ci-ကလေး
   ...

အကယ်၍ သင်သည် ဗားရှင်း 2.0.0-SNAPSHOT ကို တည်ဆောက်လိုပါက၊ ၎င်းကို အသုံးပြုပါ။

    mvn -Drevision=2.0.0 သန့်ရှင်းသော ပက်ကေ့ချ်

ထုတ်ဝေလိုပါက၊ SNAPSHOT ကို ပြန်လည်သတ်မှတ်ပါ။

    mvn -Dchangelist= သန့်ရှင်းသော အထုပ်

*အထက်ပါဥပမာများကို ကူးယူဖော်ပြပါသည်။ ဆောင်းပါးများ Maven Apache Project ဝဘ်ဆိုဒ်တွင်

ကြမ်းတမ်းသော အဖြစ်မှန်

အားလုံးကျန်းမာပြီး စိတ်ကျေနပ်မှုခံစားရဖို့ အချိန်ကျပြီ၊ ဒါပေမယ့် မဟုတ်ဘူး ။ repository တွင်ထုတ်ဝေထားသော artifacts ၏ဖော်ပြချက်များတွင် ၎င်းကို အစားထိုးမည်မဟုတ်သောကြောင့် install နှင့် deploy အတွက် ဤနည်းလမ်းသည် အလုပ်မဖြစ်နိုင်ပါ။ ${revision} ၎င်း၏အဓိပ္ပာယ်နှင့် maven သည်၎င်း၏အရာအားလုံးကိုနားလည်နိုင်တော့မည်မဟုတ်ပါ။


    org.apache
    apache
    ${revision}

ဥမင်တစ်ခုရဲ့အဆုံးမှာ အလင်းရောင်တစ်ခု

ပြဿနာရဲ့ အဖြေကို ရှာဖို့ လိုတယ်။ အခြေအနေကို ကယ်တင်နိုင်ခဲ့သည်။ flatten-maven-plugin. ဤပလပ်အင်သည် pom ရှိ variable အားလုံးကို ဖြေရှင်းပေးသည်၊ သို့သော် တစ်ချိန်တည်းတွင် စုစည်းမှုအတွင်းသာ လိုအပ်သည့် အခြားသော အချက်အလက်အများအပြားကို ဖြတ်တောက်ကာ အခြားပရောဂျက်များသို့ ထုတ်ဝေထားသော ရှေးဟောင်းပစ္စည်းများကို ထည့်သွင်းသည့်အခါ မလိုအပ်ပါ။ ပလပ်အင်သည် မိဘ-သားသမီး မှီခိုမှုအားလုံးကို “ဖြောင့်တန်းစေသည်” ဖြစ်သောကြောင့် ရလဒ်အနေဖြင့် သင်လိုအပ်သမျှပါ၀င်သည့် ပြားချပ်ချပ်ပရိုမ်တစ်မျိုးကို သင်ရရှိမည်ဖြစ်သည်။ အဆင်မပြေမှုမှာ ၎င်းသည် ကျွန်ုပ်တို့နှင့် လုံးဝ မကိုက်ညီသော “အပို” ကို အလွန်အကျွံ ဖြတ်တောက်ခြင်းကြောင့် ဖြစ်သည်။ ဤ plugin ၏ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ပတ်သက်သောအချက်အလက်များကိုလေ့လာပြီးနောက်၊ ကျွန်ုပ်တို့သည် စကြဝဠာရှိတစ်ဦးတည်းမဟုတ်ကြောင်းတွေ့ရှိခဲ့ရပြီး 2018 ခုနှစ် သြဂုတ်လတွင်ဖြစ်နိုင်စေရန်ဆန္ဒဖြင့် plugin repository ရှိ Github တွင် ဆွဲငင်တောင်းဆိုချက်တစ်ခုကို ဖန်တီးခဲ့သည်။ pom.xml ကို မည်သို့ "လုယူရမည်" ကို ကျွန်ုပ်တို့ကိုယ်တိုင် ဆုံးဖြတ်ရန်။ developer များသည် ဝေဒနာခံစားနေရသူများ၏ အသံများကို နားထောင်ခဲ့ကြပြီး ဒီဇင်ဘာလတွင် ဗားရှင်းအသစ် 1.1.0၊ မုဒ်အသစ်၊ ဖြေရှင်းချက်CiFriendliesOnly သည် ဒီဇင်ဘာလတွင် ထွက်ရှိလာခဲ့ပြီး ယခင်ထက်ပို၍ သင့်လျော်သည့် flatten-maven-plugin တွင် ပေါ်လာခဲ့သည်။ pom.xml သည် ဒြပ်စင်မှလွဲ၍ ကျန်သည့်အတိုင်းဖြစ်သည်။ နှင့် ခွင့်ပြုသည်။ ${revision}, ${sha1} и ${ပြောင်းလဲမှုစာရင်း}.

ပရောဂျက်သို့ ပလပ်အင်တစ်ခုထည့်ခြင်း။


  
    org.codehaus.mojo
    flatten-maven-plugin
    ၀.၁.၀.၁
    
      မှန်ပါတယ်။
      ဖြေရှင်းချက်CiFriendliesOnly
    
    
      
        ပြား
        လုပ်ငန်းစဉ်-အရင်းအမြစ်များ
        
          ပြား
        
      
      
        flatten.clean
        သန့်ရှင်း
        
          သန့်ရှင်း
        
      
    
  

Done!

ပျော်ရွှင်စရာ ကုန်ဆုံးပါစေ။

ယခုမှစ၍ ပရောဂျက်တစ်ခုလုံး၏ ဗားရှင်းကို ပြောင်းလဲရန်နှင့် ၎င်းနှင့်ပတ်သက်သည့် မှီခိုမှုအားလုံးကို အသိပေးရန်အတွက်၊ ကျွန်ုပ်တို့သည် ဒြပ်စင်ကို တည်းဖြတ်ရန် လိုအပ်ပါသည်။ပြန်လည်စစ်ဆေးကြည့်ရှုခြင်း> အမြစ်၌သာ pom.xml. တူညီသောပြောင်းလဲမှုနှင့်အတူ ဤဖိုင်တစ်ရာ သို့မဟုတ် နှစ်ခုသည် ပြန်လည်သုံးသပ်ခြင်းသို့ ရောက်ရှိမည်မဟုတ်သော်လည်း တစ်ခုဖြစ်သည်။ ကောင်းပြီ၊ သုံးစရာ မလိုဘူး။ ဗားရှင်း-maven-ပလပ်အင်.

source: www.habr.com

မှတ်ချက် Add