Tungkol sa amin
Sa 1C bumuo kami hindi lamang isang platform
Pagpasok
Madalas naming ginagamit ang maven bilang isang build system para sa mga application ng Java, at sa maikling artikulong ito nais naming pag-usapan ang tungkol sa isa sa mga problema na kinailangan naming harapin sa proseso ng pag-aayos ng pag-unlad, at tungkol sa diskarte na nagpapahintulot sa amin na malampasan ito. problema.
Mga kinakailangan at daloy ng trabaho
Dahil sa mga detalye ng pag-unlad sa aming mga maven na proyekto, gumagamit kami ng napakaraming mga module, dependency at mga proyekto ng bata. Ang bilang ng mga pom file sa isang puno ay maaaring nasa sampu o kahit daan-daan.
Tila: walang malaking bagay, nilikha nila ito nang isang beses at nakalimutan ang tungkol dito. Kung kailangan mong baguhin o magdagdag ng isang bagay sa lahat ng mga file nang sabay-sabay, mayroong maraming mga maginhawang tool sa mga editor at IDE. Ano ang pinakakaraniwang regular na pagbabago sa pom.xml? Naniniwala kami na ang mga pagbabago sa mga bersyon ng proyekto at dependency. Marahil ay may gustong makipagtalo dito, ngunit ito mismo ang sitwasyon sa atin. Ang dahilan ay nakasalalay sa katotohanan na, kasama ang kernel, sabay-sabay nating binubuo ang marami sa ating sariling mga aklatan, at para sa patuloy na muling paggawa ng mga resulta ng pagbuo at pagsubok, ang paggamit ng mga snapshot ay tila hindi isang maginhawang diskarte para sa amin. Para sa kadahilanang ito, kinakailangang itaas ang numero ng bersyon sa mga proyekto sa bawat build.
Gayundin, paminsan-minsan, kailangan ng developer na bumuo ng sarili niyang sangay ng isang library at suriin ang functionality nito laban sa lahat ng dependencies, kung saan kailangan niyang manual na baguhin ang bersyon ng lahat ng mga ito.
Paunang solusyon
Sa ganitong madalas at maraming pagbabago sa bersyon, gusto kong pasimplehin at i-automate ang proseso sa loob ng CI. Dito nagliligtas ang isang maginhawa at kilalang plugin. versions-maven-plugin - ikonekta ito at ilunsad ito
mvn -N versions:set -DnewVersion=2.0.1
at gagawin ni Maven ang lahat ayon sa nararapat: tatakbo ito sa hierarchy mula sa itaas hanggang sa ibaba, na papalitan ang lahat ng bersyon - kagandahan! Ngayon ang natitira na lang ay magtaas ng kahilingan sa paghila, susuriin ng mga kasamahan ang mga pagbabago, at mabilis kang makakasali sa trunk. Mabilis? Hindi mahalaga kung paano ito ay. Isang pares ng daan pom.xml para sa pagsusuri, at hindi ito binibilang ang code. Bilang karagdagan, walang ligtas mula sa pagsasanib ng mga salungatan sa napakaraming bilang ng mga binagong file. Dapat pansinin dito na sa proseso ng CI, awtomatikong nagaganap ang mga pagbabago sa bersyon kasama ng mga pagbabago sa functionality, at hindi kahit papaano nang hiwalay.
Mga Bagong Tampok
Ilang sandali kaming huminahon at, nang nagbitiw sa aming sarili, namuhay kami nang ganoon hanggang sa mga lalaki mula
mvn -Drevision=2.0.0 malinis na pakete
Ang mga halaga ng ari-arian ng system ay nangunguna sa mga halagang tinukoy samga katangian>.
Magulang
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-parent
Unang CI Friendly
${revision}${sha1}${changelist}
...
1.3.1
-SNAPSHOT
Kaapu-apuhan
4.0.0
org.apache.maven.ci
ci-parent
${revision}${sha1}${changelist}
org.apache.maven.ci
ci-bata
...
Kung gusto mong bumuo ng bersyon 2.0.0-SNAPSHOT, pagkatapos ay gamitin lamang
mvn -Drevision=2.0.0 malinis na pakete
Kung gusto mong gumawa ng release, i-reset lang ang SNAPSHOT
mvn -Dchangelist= malinis na pakete
*Ang mga halimbawa sa itaas ay kinuha mula sa
Malupit na katotohanan
Ang lahat ay mabuti at malusog, oras na para makaramdam ng kasiyahan, ngunit hindi. Lumalabas na ang pamamaraang ito ay hindi gagana para sa pag-install at pag-deploy, dahil hindi ito mapapalitan sa mga paglalarawan ng mga artifact na nai-publish sa repository ${rebisyon} sa kahulugan nito at hindi na mauunawaan ni maven kung ano ang tungkol dito.
org.apache
apache
${rebisyon}
Isang liwanag sa dulo ng isang lagusan
Kailangan nating maghanap ng solusyon sa problema. Maaaring nailigtas ang sitwasyon
Pagdaragdag ng isang plugin sa proyekto
org.codehaus.mojo
patagin-maven-plugin
1.1.0
totoo
resolveCiFriendliesOnly
patagin
proseso-resources
patagin
patagin.malinis
malinis
malinis
Tapos na!
Masayang pagtatapos
Mula ngayon, upang mabago ang bersyon ng buong proyekto at ipaalam sa lahat ng mga dependency ang tungkol dito, kailangan lang nating i-edit ang elementorebisyon> sa ugat pa lang pom.xml. Hindi isang daan o dalawa sa mga file na ito na may parehong pagbabago ang dumating sa pagsusuri, ngunit isa. Well, hindi na kailangang gamitin versions-maven-plugin.
Pinagmulan: www.habr.com