Искуство коришћења флаттен-мавен-плугин-а да поједноставите верзионисање у мавен пројектима

о нама

У 1Ц развијамо не само платформу 1Ц: Ентерприсе на Ц ++ и JavaScript , али и Јава апликације – посебно ново развојно окружење Алати за развој предузећа базиран на Ецлипсе-у и серверу за поруке који је дубоко интегрисан са платформом - Интеракциони системи.

Улазак

Мавен најчешће користимо као буилд систем за Јава апликације, а у овом кратком чланку желимо да говоримо о једном од проблема са којима смо морали да се суочимо у процесу организовања развоја, као ио приступу који нам је омогућио да ово превазиђемо. проблем.

Предуслови и ток рада

Због специфичности развоја у нашим мавен пројектима, користимо доста модула, зависности и подређених пројеката. Број пом фајлова у једном стаблу може бити у десетинама или чак стотинама.

Искуство коришћења флаттен-мавен-плугин-а да поједноставите верзионисање у мавен пројектима

Рекло би се: ништа страшно, једном су га створили и заборавили. Ако треба да промените или додате нешто у свим датотекама одједном, постоји много згодних алата у уређивачима и ИДЕ-овима. Која је најчешћа редовна промена пом.кмл? Верујемо да су промене у верзијама пројекта и зависности. Можда ће неко хтети да се о томе расправља, али код нас је управо таква ситуација. Разлог лежи у чињеници да, заједно са кернелом, истовремено развијамо многе сопствене библиотеке, а за сталну поновљивост резултата изградње и тестирања, употреба снимака нам се не чини погодним приступом. Из тог разлога, потребно је повећати број верзије у пројектима са сваком изградњом.

Такође, с времена на време, програмер треба да направи сопствену грану библиотеке и провери њену функционалност у односу на све зависности, за шта мора ручно да промени верзију свих њих.

Почетно решење

Са тако честим и вишеструким променама верзија, желим да поједноставим и аутоматизујем процес унутар ЦИ. Овде у помоћ долази згодан, добро познати додатак. версионс-мавен-плугин - повежите га и покрените

мвн -Н версионс:сет ​​-ДневВерсион=2.0.1

а Мавен ће учинити све како треба: проћи ће кроз хијерархију од врха до дна, замењујући све верзије - лепоту! Сада остаје само да поднесете захтев за повлачење, колеге ће прегледати измене, а ви можете брзо да се придружите пртљажнику. Брзо? Како год да је. Пар стотина пом.кмл за преглед, а то се не рачуна код. Поред тога, нико није сигуран од сукоба спајања са тако великим бројем промењених датотека. Овде треба напоменути да се у ЦИ процесу промене верзије дешавају аутоматски заједно са променама у функционалности, а не некако одвојено.

Нове функције

Неко време смо се смирили и, помиривши се, тако смо живели све док момци из Мавен Апацхе пројекат Почевши од верзије 3.5.0-бета-1, Мавен није укључивао подршку за такозване „плацехолдерс“. Суштина ових замена је у томе пом.кмл уместо специфичне индикације верзије пројекта користе се променљиве ${ревисион}, ${сха1} и ${цхангелист}. Вредности ових својстава су постављене или у елементусвојства>, или се могу дефинисати кроз својство система

мвн -Древисион=2.0.0 чист пакет

Вредности системских својстава имају предност над вредностима дефинисаним усвојства>.

Родитељ

  4.0.0
  
    орг.апацхе
    апацхе
    18
  
  орг.апацхе.мавен.ци
  ци-родитељ
  Фирст ЦИ Фриендли
  ${ревисион}${сха1}${цхангелист}
  ...
  
    1.3.1
    -СНАПСХОТ
    
  


Потомак

  4.0.0
  
    орг.апацхе.мавен.ци
    ци-родитељ
    ${ревисион}${сха1}${цхангелист}
  
  орг.апацхе.мавен.ци
  ци-дете
   ...

Ако желите да направите верзију 2.0.0-СНАПСХОТ, само користите

    мвн -Древисион=2.0.0 чист пакет

Ако желите да објавите, само ресетујте СНАПСХОТ

    мвн -Дцхангелист= чист пакет

*Горе наведени примери су преузети из Чланак на веб страници пројекта Мавен Апацхе

сурова реалност

Све је добро и здраво, време је да осетите задовољство, али не. Испоставило се да овај метод неће радити за инсталацију и примену, јер неће бити замењен у описима артефаката објављеним у спремишту ${ревисион} на њено значење и Мавен више неће разумети о чему се ради.


    орг.апацхе
    апацхе
    ${ревисион}

Светло на крају тунела

Морамо тражити решење проблема. Могао је спасити ситуацију флаттен-мавен-плугин. Овај додатак решава све варијабле у пом-у, али у исто време избацује много других информација које су потребне само током склапања и које нису потребне приликом увоза објављених артефаката у друге пројекте. Додатак такође „исправља“ све зависности родитељ-дете, и као резултат добијате равну пом која укључује све што вам је потребно. Неугодност је била у томе што исече превише „екстра“, што нам никако није одговарало. Након проучавања информација о развоју овог додатка, испоставило се да нисмо једини у универзуму, а још у августу 2018. године креиран је пулл-рекуест на Гитхуб-у у репозиторијуму додатака са жељом да се то омогући да сами одредимо како да „покваримо“ пом.кмл. Програмери су слушали гласове оних који пате, а већ у децембру, са издавањем нове верзије 1.1.0, појавио се нови мод, ресолвеЦиФриендлиесОнли, у флаттен-мавен-плугин-у, који је био прикладнији него икад - одлази пом.кмл какав јесте, осим елемента и дозвољава ${ревисион}, ${сха1} и ${цхангелист}.

Додавање додатка у пројекат


  
    орг.цодехаус.мојо
    флаттен-мавен-плугин
    1.1.0
    
      истина
      ресолвеЦиФриендлиесОнли
    
    
      
        спљоштити
        процес-ресурси
        
          спљоштити
        
      
      
        изравнати.чистити
        чист
        
          чист
        
      
    
  

Готово!

Срећан крај

Од сада, да бисмо променили верзију целог пројекта и обавестили све зависности о томе, само треба да уредимо елементревизија> само у корену пом.кмл. На преглед не стиже сто или две ових фајлова са истом изменом, већ један. Па, нема потребе да се користи версионс-мавен-плугин.

Извор: ввв.хабр.цом

Додај коментар