Биз жөнүндө
1Сте биз платформаны гана эмес, иштеп чыгабыз
кирүү
Биз көбүнчө mavenди Java тиркемелери үчүн куруу системасы катары колдонобуз жана бул кыска макалада биз иштеп чыгууну уюштуруу процессинде туш болгон көйгөйлөрдүн бири жана аны жеңүүгө мүмкүндүк берген мамиле жөнүндө сөз кылгыбыз келет. көйгөй.
Алдын ала шарттар жана иш процесси
Биздин maven долбоорлорубуздун өнүгүү өзгөчөлүктөрүнөн улам биз көптөгөн модулдарды, көз карандылыктарды жана балдар долбоорлорун колдонобуз. Бир дарактагы пом файлдарынын саны ондогон же жүздөгөн болушу мүмкүн.
Көрүнүп тургандай: чоң маселе жок, алар аны бир жолу жаратып, унутуп коюшкан. Эгер сиз бир эле учурда бардык файлдарда бир нерсени өзгөртүү же кошуу керек болсо, редакторлордо жана IDEлерде көптөгөн ыңгайлуу куралдар бар. pom.xml үчүн эң кеңири таралган үзгүлтүксүз өзгөртүү кайсы? Биз долбоордун версиялары жана көз карандылыктары өзгөрөт деп ишенебиз. Балким, кимдир бирөө муну менен талашкысы келет, бирок бизде так ушундай. Мунун себеби, ядро менен бирге, биз бир эле учурда өзүбүздүн көптөгөн китепканаларыбызды өнүктүрүп жаткандыгыбызда, ал эми куруунун жана тестирлөөнүн жыйынтыктарынын дайыма кайталанышы үчүн, сүрөттү колдонуу бизге ыңгайлуу ыкмадай көрүнбөйт. Ушул себептен улам, ар бир куруу менен долбоорлордо версия номерин жогорулатуу зарыл.
Ошондой эле, мезгил-мезгили менен иштеп чыгуучу китепкананын өзүнүн филиалын куруп, анын функционалдуулугун бардык көз карандылыктарга каршы текшериши керек, ал үчүн алардын бардыгынын версиясын кол менен өзгөртүшү керек.
Баштапкы чечим
Мындай тез-тез жана бир нече версия өзгөртүүлөр менен, мен CI ичиндеги процессти жөнөкөйлөштүрүүнү жана автоматташтыргым келет. Бул жерде ыңгайлуу, белгилүү плагин жардамга келет. versions-maven-plugin - аны туташтыруу жана ишке киргизүү
mvn -N версиялары: set -DnewVersion=2.0.1
жана Maven бардыгын каалагандай кылат: ал бардык версияларды алмаштырып, иерархияны өйдөдөн ылдыйга карай өтөт - сулуулук! Эми болгону тартуу өтүнүчүн көтөрүү гана калды, кесиптештер өзгөрүүлөрдү карап чыгышат жана сиз тез эле магистрага кошула аласыз. Тезби? Кандай болбосун. Бир эки жүз pom.xml карап чыгуу үчүн, жана бул кодду эсепке албайт. Мындан тышкары, мынчалык көп сандагы өзгөртүлгөн файлдар менен биригүү чыр-чатактарынан эч ким коопсуз эмес. Бул жерде белгилей кетүү керек, CI процессинде версиянын өзгөрүүлөрү кандайдыр бир жол менен өзүнчө эмес, функциялык өзгөрүүлөр менен бирге автоматтык түрдө ишке ашат.
жаңы мүмкүнчүлүктөр
Бир аз тынчып, кызматтан кетип, жигиттерге чейин ушинтип жашадык
mvn -Drevision = 2.0.0 таза пакет
Системанын касиетинин баалуулуктары аныкталган баалуулуктардан жогору тураткасиеттери>.
Ата-эне
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-ата-эне
Биринчи CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
- SNAPSHOT
тукуму
4.0.0
org.apache.maven.ci
ci-ата-эне
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-бала
...
Эгерде сиз 2.0.0-SNAPSHOT версиясын кургуңуз келсе, анда жөн гана колдонуңуз
mvn -Drevision = 2.0.0 таза пакет
Эгерде сиз чыгарууну кааласаңыз, анда жөн гана SNAPSHOTти баштапкы абалга келтириңиз
mvn -Dchangelist = таза пакет
*Жогорудагы мисалдар алынган
ачуу чындык
Баары жакшы жана ден-соолукта, канааттануу сезимин сезүүгө убакыт келди, бирок жок. Көрсө, бул ыкма орнотуу жана жайылтуу үчүн иштебейт, анткени ал репозиторийде жарыяланган артефакттардын сыпаттамаларында алмаштырылбайт. ${ревизия} анын мааниси боюнча жана Мавен мындан ары анын эмне жөнүндө экенин түшүнбөй калат.
org.apache
apache
${ревизия}
Туннелдин аягында жарык
Биз маселени чечүүнүн жолун издешибиз керек. Кырдаалды сактап калса болмок
Проектке плагин кошуу
org.codehaus.mojo
flatten-maven-плагин
1.1.0
чын
solutionCiFriendliesOnly
тегиздөө
процесс-ресурстары
тегиздөө
тегиздөө.таза
таза
таза
Кереги жок!
Бактылуу аягы
Мындан ары, бүткүл долбоордун версиясын өзгөртүү жана бардык көз карандылыктар бул жөнүндө билиши үчүн, биз жөн гана элементти түзөтүшүбүз керек.кайрадан кароо> жөн гана тамырында pom.xml. Ошол эле өзгөртүү менен бул файлдардын жүз же эки эмес, карап чыгууга келет, бирок бир. Ооба, колдонуунун кереги жок versions-maven-plugin.
Source: www.habr.com