د ماوین پروژو کې د نسخې ساده کولو لپاره د فلټین - میون - پلگ ان کارولو تجربه وکړئ

زموږ په اړه

په 1C کې موږ نه یوازې یو پلیټ فارم رامینځته کوو 1C: شرکت په C++ и د جاواسکرېپټ، مګر د جاوا غوښتنلیکونه هم - په ځانګړي توګه د نوي پراختیا چاپیریال د تشبث پراختیا وسیلې د Eclipse پراساس او د میسینجر سرور په ژوره توګه د پلیټ فارم سره مدغم شوی - د تعامل سیسټمونه.

د ننوتلو

موږ ډیری وختونه ماون د جاوا غوښتنلیکونو لپاره د جوړونې سیسټم په توګه کاروو ، او پدې لنډه مقاله کې به موږ د یوې ستونزې په اړه وغږیږو چې موږ د پراختیا تنظیم کولو پروسې کې ورسره مخ وو ، او د هغه چلند په اړه چې موږ ته یې اجازه راکړه چې پدې بریالي شو. ستونزه

شرایط او کاري جریان

زموږ په لویو پروژو کې د پراختیا ځانګړتیاوو له امله، موږ ډیری ماډلونه، انحصار او د ماشومانو پروژې کاروو. په یوه ونه کې د پوم فایلونو شمیر په لسګونو یا حتی سلګونو کې کیدی شي.

د ماوین پروژو کې د نسخې ساده کولو لپاره د فلټین - میون - پلگ ان کارولو تجربه وکړئ

داسې ښکاري: کومه لویه معامله نه ده، دوی دا یو ځل جوړ کړی او د هغې په اړه یې هیر کړی. که تاسو اړتیا لرئ په یوځل کې په ټولو فایلونو کې یو څه بدل کړئ یا اضافه کړئ ، په ایډیټرانو او IDEs کې ډیری مناسب وسیلې شتون لري. pom.xml ته تر ټولو عام منظم بدلون څه شی دی؟ موږ باور لرو چې د پروژې نسخې او انحصار کې بدلون. شاید یو څوک به له دې سره استدلال وکړي ، مګر دا زموږ سره واقعیا وضعیت دی. دلیل په حقیقت کې دی چې د کرنل سره سره، موږ په ورته وخت کې خپل ډیری کتابتونونه رامینځته کوو، او د پایلو د جوړولو او ازموینې د دوامداره بیا تولید لپاره، د سنیپ شاټونو کارول موږ ته مناسبه لاره نه ښکاري. د دې دلیل لپاره ، دا اړینه ده چې د هرې جوړونې سره په پروژو کې د نسخې شمیره لوړه کړئ.

همچنان ، وخت په وخت ، یو پراختیا کونکی اړتیا لري چې د خپل کتابتون څانګه جوړه کړي او د ټولو انحصارونو پروړاندې یې فعالیت وګوري ، د دې لپاره چې هغه باید د دوی ټولو نسخه په لاسي ډول بدل کړي.

ابتدايي حل

د داسې پرله پسې او څو نسخو بدلونونو سره، زه غواړم په CI کې پروسه ساده او اتومات کړم. دا هغه ځای دی چې یو مناسب، ښه پیژندل شوی پلگ ان د ژغورنې لپاره راځي. versions-maven-plugin - دا وصل کړئ او لانچ یې کړئ

mvn -N نسخې: set -DnewVersion=2.0.1

او ماون به هر څه وکړي لکه څنګه چې باید وي: دا به له پورتنۍ برخې څخه تر لاندې پورې تیریږي ، ټولې نسخې ځای په ځای کوي - ښکلا! اوس ټول هغه څه چې پاتې دي د پلې کولو غوښتنې پورته کول دي، همکاران به بدلونونه بیاکتنه وکړي، او تاسو کولی شئ ژر تر ژره د ټرک سره یوځای شئ. په چټکۍ سره؟ هیڅ توپیر نلري چې دا څنګه وي. څو سوه pom.xml د بیاکتنې لپاره، او دا کوډ نه شمیرل کیږي. سربیره پردې ، هیڅ څوک د دومره لوی شمیر بدل شوي فایلونو سره د ګډوډ شخړو څخه خوندي ندي. دلته باید یادونه وشي چې د CI پروسې کې، د نسخې بدلونونه په اتوماتيک ډول د فعالیت بدلونونو سره واقع کیږي، نه په جلا توګه.

نوې بڼې

د یو څه وخت لپاره موږ آرام شو او استعفا ورکړه، موږ د هلکانو تر راتګ پورې همداسې ژوند کاوه د ماون اپاچی پروژه د 3.5.0-beta-1 نسخه څخه پیل، ماون د تش په نامه "ځای لرونکو" ملاتړ شامل نه کړ. د دې بدیلونو جوهر دا دی pom.xml د پروژې نسخې د مشخصې اشارې پرځای، متغیرات کارول کیږي ${بیا کتنه}, ${sha1} и ${بدلوال}. د دې ملکیتونو ارزښتونه پخپله یا په عنصر کې تنظیم شويملکیتونو>، یا دوی د سیسټم ملکیت له لارې تعریف کیدی شي

mvn -Drevision = 2.0.0 پاک کڅوړه

د سیسټم ملکیت ارزښتونه په تعریف شوي ارزښتونو کې لومړیتوب لريملکیتونو>.

والدین

  4.0.0
  
    org.apache
    اپاچی
    18
  
  org.apache.maven.ci
  ci- پلار
  لومړی CI دوستانه
  ${بدلون}${sha1}${بدلون وال}
  ...
  
    1.3.1
    - سنیپ شاټ
    
  


نسل

  4.0.0
  
    org.apache.maven.ci
    ci- پلار
    ${بدلون}${sha1}${بدلون وال}
  
  org.apache.maven.ci
  ci-ماشوم
   ...

که تاسو غواړئ چې نسخه 2.0.0-SNAPSHOT جوړ کړئ، نو یوازې وکاروئ

    mvn -Drevision = 2.0.0 پاک کڅوړه

که تاسو غواړئ یو خوشې کړئ، نو یوازې SNAPSHOT بیا تنظیم کړئ

    mvn -Dchangelist= پاک بسته

* پورتني مثالونه ترې اخیستل شوي دي مقالې د ماون اپاچی پروژې ویب پاڼه کې

تریخ حقیقت

هرڅه ښه او صحي دي، دا وخت دی چې د اطمینان احساس احساس کړئ، مګر نه. دا معلومه شوه چې دا طریقه به د نصب او پلي کولو لپاره کار ونکړي، ځکه چې دا به په ذخیره کې د خپرو شویو آثارو په توضیحاتو کې ځای پرځای نشي. ${بیا کتنه} د دې معنی او ماویین به نور نه پوهیږي چې دا ټول څه دي.


    org.apache
    اپاچی
    ${بیا کتنه}

د تونل په پای کې رڼا

موږ باید د ستونزې د حل په لټه کې یو. کیدای شي وضعیت خوندي کړي flatten-maven-plugin. دا پلگ ان په پوم کې ټول متغیرونه حل کوي ، مګر په ورته وخت کې ډیری نور معلومات له مینځه وړي چې یوازې د مجلس په جریان کې ورته اړتیا وي او نورو پروژو ته خپاره شوي آثار واردولو پرمهال اړتیا نلري. پلگ ان د والدین - ماشوم ټول انحصارونه هم "مستقیم" کوي، او د پایلې په توګه، تاسو یو فلیټ پوم ترلاسه کوئ چې هر هغه څه پکې شامل دي چې تاسو ورته اړتیا لرئ. ستونزه دا وه چې دا خورا ډیر "اضافي" پرې کوي، کوم چې موږ ته مناسب نه و. د دې پلگ ان د پراختیا په اړه د معلوماتو مطالعې وروسته، دا معلومه شوه چې موږ یوازې په کائنات کې نه یو، او بیرته د اګست په 2018 کې، د پلگ ان ذخیره کې د ګیتوب په اړه د پلګ غوښتنه جوړه شوې وه چې دا ممکنه کړي. ترڅو پخپله وټاکو چې څنګه pom.xml "خراب" کړو. پراختیا کونکو د هغو رنځورانو غږونه اوریدلي ، او دمخه په دسمبر کې ، د نوي نسخه 1.1.0 په خپرولو سره ، یو نوی حالت ، solveCiFriendliesOnly ، په flatten-maven-plugin کې څرګند شو ، کوم چې د هر وخت څخه ډیر مناسب و - دا پریږدي. pom.xml لکه څنګه چې دی، پرته له عنصر څخه او اجازه ورکوي ${بیا کتنه}, ${sha1} и ${بدلوال}.

پروژې ته د پلگ ان اضافه کول


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      ریښتیا
      یوازې دوستانه حل کول
    
    
      
        چپه کول
        د پروسې سرچینې
        
          چپه کول
        
      
      
        flatten.clean
        پاک
        
          پاک
        
      
    
  

بشپړ شوی

خوشاله پای

له اوس څخه، د دې لپاره چې د ټولې پروژې نسخه بدله کړئ او ټول انحصارونه د هغې په اړه پوه شئ، موږ یوازې د عنصر ترمیم ته اړتیا لروبیاکتنه> یوازې په ریښه کې pom.xml. د ورته بدلون سره سل یا دوه فایلونه بیاکتنې ته نه راځي، مګر یو. ښه، د کارولو اړتیا نشته versions-maven-plugin.

سرچینه: www.habr.com

Add a comment