Am vrut ca proiectul Maven, localizat în diferite locuri și cu clădiri diferite, să cunoască versiunea exactă sub forma modificărilor de la depozitul Mercurial.
Mai jos este o soluție rapidă, simplă (fără scm plugin) și nu prea flexibilă sub formă de bucăți de pom.xml.
- Conectați pluginul buildnumber-maven-plugin
- Opțiunea doCheck este necesară pentru a verifica schimbările locale necondiționate în proiect. Vrem ca schimbarea versiunii să fie strict legată de comiterea.
- După cum am înțeles, au nevoie de SVN Apelați doupdate, astfel încât atunci când vom construi proiectul la nivel local au fost cele mai recente modificări (descrise în documentația este rău). În opinia mea, acest lucru are în general sens doar pentru VCS centralizat, deci dezactivați acest element.
- Câmpul format este responsabil pentru formatul variabilei $. în care versiunea este înregistrată. Câmpul 0 are un format special pentru dată și un element special îi este transmis. timp de întoarcere în momentul asamblării; în locul câmpului 1, variabila $ este înlocuită. care apare ca urmare a muncii hgchangeset-ului. De asemenea, hgchangeset creează o variabilă changeSetDate cu data setului de modificări.
Acum, în variabila $, avem o versiune gata făcută care trebuie pusă undeva pentru utilizare ulterioară în aplicație. Un loc logic pentru aceasta este manifestarea arhivei. În cazul meu a fost .war. În consecință, configurația plug-in-ului de război:
Cu astfel de setări, fișierul MANIFEST.MF apare în directorul META-INF cu următorul conținut: