Iwwer eis
Bei 1C entwéckelen mir net nëmmen eng Plattform
Element
Mir benotzen meeschtens Maven als Build System fir Java Uwendungen, an an dësem kuerzen Artikel wëlle mir iwwer ee vun de Probleemer schwätzen, déi mir am Prozess vun der Organisatioun vun der Entwécklung konfrontéiert hunn, an iwwer d'Approche déi eis erlaabt huet dëst ze iwwerwannen. Problem.
Viraussetzunge a Workflow
Wéinst de Spezifizitéiten vun der Entwécklung an eise Maven-Projeten benotze mir zimmlech vill Moduler, Ofhängegkeeten a Kannerprojeten. D'Zuel vu Pom-Dateien an engem Bam kann an Zénger oder souguer Honnerte sinn.
Et géif schéngen: kee groussen Deal, si hunn et eemol erstallt an et vergiess. Wann Dir eppes an all Dateie gläichzäiteg ännere musst oder addéiere musst, ginn et vill praktesch Tools an Editeuren an IDEs. Wat ass déi heefegst regelméisseg Ännerung op pom.xml? Mir gleewen, datt Ännerungen am Projet Versiounen an Ofhängegkeeten. Vläit wëll een domat streiden, mä dat ass genau d'Situatioun bei eis. De Grond läit an der Tatsaach, datt, zesumme mam Kernel, mir gläichzäiteg vill vun eisen eegene Bibliothéiken entwéckelen, a fir d'konstante Reproducibilitéit vu Bau- an Testresultater, d'Benotzung vu Snapshots schéngt eis net eng praktesch Approche ze maachen. Aus dësem Grond ass et néideg d'Versiounsnummer a Projeten mat all Build ze erhéijen.
Och vun Zäit zu Zäit muss en Entwéckler seng eege Filial vun enger Bibliothéik bauen a seng Funktionalitéit géint all Ofhängegkeet iwwerpréiwen, fir déi hien d'Versioun vun allen manuell muss änneren.
Éischt Léisung
Mat esou dacks a multiple Versiounsännerungen, wëll ech de Prozess am CI vereinfachen an automatiséieren. Dëst ass wou e prakteschen, bekannte Plugin zur Rettung kënnt. versions-maven-plugin - konnektéieren et a starten et
mvn -N Versiounen:set -DnewVersion=2.0.1
an Maven wäert alles maachen wéi et soll: et wäert duerch d'Hierarchie vun uewe bis ënnen lafen, all Versiounen ersetzen - Schéinheet! Elo bleift et nëmmen eng Pull-Ufro ze erhéijen, d'Kollege wäerten d'Ännerungen iwwerpréiwen, an Dir kënnt séier an de Stamm bäitrieden. Schnell? Egal wéi et ass. E puer honnert pom.xml fir Iwwerpréiwung, an dëst zielt net de Code. Zousätzlech ass keen sécher vu Konflikter mat esou enger grousser Zuel vu geännerten Dateien ze fusionéieren. Et sollt hei bemierkt ginn datt am CI-Prozess Versiounsännerungen automatesch zesumme mat Ännerungen an der Funktionalitéit geschéien, an net iergendwéi getrennt.
Nei Fonctiounen
Eng Zäit laang hu mir eis berouegt an, nodeems mir eis demissionéiert hunn, sou gelieft bis d'Jongen aus
mvn -Drevision=2.0.0 propper Package
System Eegeschafte Wäerter hu Virrang iwwer Wäerter definéiert anEegeschafte>.
Elterendeel
4.0.0
org.apache
apache
18
org.apache.maven.ci
ci-Elteren
Éischt CI Frëndschaft
${Revision}${sha1}${changelist}
...
1.3.1
- SNAPSHOT
Nokommen
4.0.0
org.apache.maven.ci
ci-Elteren
${Revision}${sha1}${changelist}
org.apache.maven.ci
ci-Kand
...
Wann Dir wëllt Versioun 2.0.0-SNAPSHOT bauen, da benotzt just
mvn -Drevision=2.0.0 propper Package
Wann Dir eng Verëffentlechung wëllt maachen, da setzt just SNAPSHOT zréck
mvn -Dchangelist= propper Package
* D'Beispiller hei uewen sinn aus
Hard Realitéit
Alles ass gutt a gesond, et ass Zäit e Gefill vun Zefriddenheet ze fillen, awer nee. Et stellt sech eraus datt dës Method net funktionnéiert fir ze installéieren an z'installéieren, well se net an de Beschreiwunge vun Artefakte publizéiert am Repository ersat gëtt ${Revisioun} op seng Bedeitung a Maven wäert net méi verstoen, ëm wat et geet.
org.apache
apache
${Revisioun}
E Liicht am Enn vun engem Tunnel
Mir mussen no enger Léisung fir de Problem sichen. Konnt d'Situatioun retten
Füügt e Plugin zum Projet
org.codehaus.mojo
flaach-maven-plugin
1.1.0
wouer
resolveCiFriendliesOnly
flaach
Prozess Ressourcen
flaach
flaach.propper
propper
propper
Gemaach!
Glécklech Enn
Vun elo un, fir d'Versioun vum ganze Projet z'änneren an all Ofhängegkeeten doriwwer ze wëssen, brauche mir just d'Element z'ännerenVersioun> just an der Wuerzel pom.xml. Net honnert oder zwee vun dësen Dateie mat der selwechter Ännerung kommen op d'Iwwerpréiwung, awer een. Gutt, et ass net néideg ze benotzen versions-maven-plugin.
Source: will.com