maven منصوبن ۾ ورزننگ کي آسان ڪرڻ لاءِ flatten-maven-plugin استعمال ڪرڻ جو تجربو ڪريو

اسان جي باري ۾

1C تي اسان نه رڳو هڪ پليٽ فارم ٺاهيندا آهيون 1C: انٽرپرائز تي سي ++ и JavaScript، پر پڻ جاوا ايپليڪيشنون - خاص طور تي نئين ترقي واري ماحول انٽرنيشنل ڊولپمينٽ جا اوزار Eclipse جي بنياد تي ۽ هڪ ميسينجر سرور پليٽ فارم سان تمام گهڻي ضم ٿي ويو آهي - رابطي جو نظام.

جائز آهي

اسان اڪثر ڪري استعمال ڪندا آهيون ميون کي جاوا ايپليڪيشنن لاءِ هڪ بلڊ سسٽم جي طور تي، ۽ هن مختصر مضمون ۾ اسان انهن مسئلن مان هڪ بابت ڳالهائڻ چاهيون ٿا جيڪي اسان کي ترقي کي منظم ڪرڻ جي عمل ۾ منهن ڏيڻو پيو، ۽ انهي طريقي جي باري ۾ جيڪو اسان کي هن تي قابو پائڻ جي اجازت ڏني. مسئلو.

شرط ۽ ڪم فلو

اسان جي ميون منصوبن ۾ ترقي جي خاصيتن جي ڪري، اسان ڪافي ماڊل، انحصار ۽ ٻارن جي منصوبن کي استعمال ڪندا آهيون. هڪ وڻ ۾ پوم فائلن جو تعداد ڏهن يا ان کان به سئو ۾ ٿي سگهي ٿو.

maven منصوبن ۾ ورزننگ کي آسان ڪرڻ لاءِ flatten-maven-plugin استعمال ڪرڻ جو تجربو ڪريو

اهو لڳي ٿو: ڪا وڏي ڳالهه ناهي، انهن ان کي هڪ ڀيرو پيدا ڪيو ۽ ان جي باري ۾ وساريو. جيڪڏهن توهان کي هڪ ڀيرو سڀني فائلن ۾ ڪجهه تبديل ڪرڻ يا شامل ڪرڻ جي ضرورت آهي، ايڊيٽرن ۽ IDEs ۾ تمام گهڻا آسان اوزار آهن. pom.xml ۾ سڀ کان وڌيڪ عام باقاعده تبديلي ڇا آهي؟ اسان يقين رکون ٿا ته منصوبي جي نسخن ۽ انحصار ۾ تبديليون. ٿي سگهي ٿو ڪو ماڻهو هن سان بحث ڪرڻ چاهيندو، پر اسان وٽ بلڪل اها صورتحال آهي. ان جو سبب اهو آهي ته، ڪرنل سان گڏ، اسان هڪ ئي وقت پنهنجون ڪيتريون ئي لائبريريون ٺاهي رهيا آهيون، ۽ نتيجن جي تعمير ۽ جانچ جي مسلسل ٻيهر پيداوار لاءِ، سنيپ شاٽ جو استعمال اسان کي ڪو آسان طريقو نٿو لڳي. انهي سبب لاء، اهو ضروري آهي ته هر تعمير سان منصوبن ۾ ورجن نمبر وڌائڻ.

انهي سان گڏ، وقت بوقت، هڪ ڊولپر کي پنهنجي لائبريري جي برانچ ٺاهڻ ۽ ان جي ڪارڪردگي کي سڀني انحصار جي خلاف جانچڻ جي ضرورت آهي، جنهن لاء هن کي دستي طور تي انهن سڀني جو نسخو تبديل ڪرڻو پوندو.

ابتدائي حل

اهڙين بار بار ۽ گھڻن نسخن جي تبديلين سان، مان CI اندر عمل کي آسان ۽ خودڪار ڪرڻ چاهيان ٿو. اهو آهي جتي هڪ آسان، معروف پلگ ان بچاء لاء اچي ٿو. ورجن-maven-پلگ ان - ان کي ڳنڍيو ۽ ان کي لانچ ڪريو

mvn -N نسخو: سيٽ -Dnew ورجن = 2.0.1

۽ ماون سڀ ڪجھ ڪندو جيئن اھو ڪرڻ گھرجي: اھو مٿي کان ھيٺئين درجي تائين ھلندو، سڀني نسخن کي تبديل ڪندي - خوبصورتي! ھاڻي اھو باقي رھيو آھي ھڪڙي ڇڪڻ جي درخواست کي اٿارڻ لاءِ، ساٿي تبديلين جو جائزو وٺندا، ۽ توھان جلدي ۾ شامل ٿي سگھوٿا. جلدي؟ ڪا به ڳالهه ناهي ته ڪيئن آهي. ٻه سؤ pom.xml نظرثاني لاءِ، ۽ هي ڪوڊ ڳڻڻ نه آهي. ان کان سواء، ڪو به محفوظ نه آهي ضم ڪرڻ جي تڪرارن سان اهڙي وڏي تعداد ۾ تبديل ٿيل فائلن سان. هتي اهو ياد رکڻ گهرجي ته CI جي عمل ۾، ورزن ۾ تبديليون خودڪار طريقي سان ٿينديون آهن ڪارڪردگي ۾ تبديلين سان، ۽ نه ئي الڳ الڳ.

نيون خصوصيتون

ٿوريءَ دير لاءِ اسان آرام ڪيو ۽ پاڻ ئي استعيفيٰ ڏئي، ائين ئي رهنداسين جيستائين سنڌ جا ماڻهو Maven Apache پروجيڪٽ نسخو 3.5.0-beta-1 کان شروع ڪندي، Maven ۾ شامل نه ڪيو ويو سپورٽ لاء نام نهاد "جڳھ رکندڙ". انهن متبادلن جو خلاصو اهو آهي pom.xml منصوبي جي نسخي جي مخصوص اشاري جي بدران، متغير استعمال ڪيا ويا آهن ${نظرثاني}, ${sha1} и ${تبديل پرست}. انهن ملڪيتن جا قدر پاڻ يا ته عنصر ۾ مقرر ڪيا ويا آهنملڪيت>، يا انهن کي سسٽم ملڪيت جي ذريعي بيان ڪري سگهجي ٿو

mvn -Drevision = 2.0.0 صاف پيڪيج

سسٽم جي ملڪيت جي قيمتن ۾ بيان ڪيل قدرن تي ترجيح ڏين ٿاملڪيت>.

والدين

  4.0.0
  
    org.apache
    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
  سي-ٻار
   ...

جيڪڏھن توھان ورزن 2.0.0-SNAPSHOT تعمير ڪرڻ چاھيو ٿا، پوء صرف استعمال ڪريو

    mvn -Drevision = 2.0.0 صاف پيڪيج

جيڪڏھن توھان چاھيو ٿا رليز، ته پوءِ بس SNAPSHOT ري سيٽ ڪريو

    mvn -Dchangelist = صاف پيڪيج

* مٿي ڏنل مثالن مان ورتا ويا آهن مضمون Maven Apache Project ويب سائيٽ تي

تلخ حقيقت

هر شي سٺي ۽ صحتمند آهي، اهو وقت آهي اطمينان جو احساس محسوس ڪرڻ جو، پر نه. اهو ظاهر ٿئي ٿو ته اهو طريقو انسٽاليشن ۽ ترتيب ڏيڻ لاء ڪم نه ڪندو، ڇاڪاڻ ته اهو ذخيرو ۾ شايع ٿيل نمونن جي وضاحتن ۾ تبديل نه ڪيو ويندو. ${نظرثاني} ان جي معنيٰ تي ۽ مايون هاڻي نه سمجھندا ته اهو سڀ ڪجهه ڇا آهي.


    org.apache
    apache
    ${نظرثاني}

سرنگ جي آخر ۾ روشني

اسان کي مسئلي جو حل ڳولڻو پوندو. صورتحال بچائي سگهي ٿي flatten-maven-plugin. هي پلگ ان پوم ۾ سڀني متغيرن کي حل ڪري ٿو، پر ساڳئي وقت ٻين ڪيترن ئي معلومات کي ڪٽي ٿو جيڪا صرف اسيمبليء جي دوران گهربل آهي ۽ ٻين منصوبن ۾ شايع ٿيل نمونن کي درآمد ڪرڻ جي ضرورت ناهي. پلگ ان پڻ سڀني والدين-ٻارن جي انحصار کي ”سيدھا ڪري ٿو“، ۽ نتيجي طور، توهان هڪ فليٽ پوم حاصل ڪيو جنهن ۾ توهان جي گهربل هر شيءِ شامل آهي. تڪليف اها هئي ته اهو تمام گهڻو "اضافي" ڪڍي ٿو، جيڪو اسان کي بلڪل مناسب نه هو. هن پلگ ان جي ترقي بابت معلومات جي مطالعي کان پوء، اهو ظاهر ٿيو ته اسان صرف ڪائنات ۾ نه آهيون، ۽ واپس آگسٽ 2018 ۾، پلگ ان جي ذخيري ۾ Github تي هڪ پل-درخواست ٺاهي وئي هئي ان کي ممڪن بڻائڻ جي خواهش سان. pom.xml کي ڪيئن ”خراب“ ڪرڻ لاءِ پاڻ پتوڙيو. ڊولپرز انهن مصيبتن جي آوازن کي ٻڌو، ۽ اڳ ۾ ئي ڊسمبر ۾، نئين ورزن 1.1.0 جي رليز سان، هڪ نئون موڊ، حل سي فرينڊليز اونلي، فليٽ-ماون-پلگ ان ۾ ظاهر ٿيو، جيڪو اڳ کان وڌيڪ مناسب هو - اهو ڇڏي ٿو. pom.xml جيئن آهي، عنصر کان سواء ۽ اجازت ڏئي ٿو ${نظرثاني}, ${sha1} и ${تبديل پرست}.

پروجيڪٽ ۾ پلگ ان شامل ڪرڻ


  
    org.codehaus.mojo
    flatten-maven-plugin
    1.1.0
    
      سچو
      صرف دوستي حل ڪريو
    
    
      
        برابر ڪرڻ
        پروسيس وسيلن
        
          برابر ڪرڻ
        
      
      
        صاف ڪرڻ
        صاف
        
          صاف
        
      
    
  

ٿي ويو!

سٺي پڄاڻي

ھاڻي کان، سڄي منصوبي جي ورزن کي تبديل ڪرڻ ۽ سڀني انحصار کي ان بابت ڄاڻڻ لاء، اسان کي صرف عنصر کي تبديل ڪرڻ جي ضرورت آھينظرثاني> صرف روٽ ۾ pom.xml. انهن مان هڪ سؤ يا ٻه فائلون ساڳي تبديليءَ سان نظرثاني تي پهچن ٿيون، پر هڪ. خير، استعمال ڪرڻ جي ڪا ضرورت ناهي ورجن-maven-پلگ ان.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو