W Maven jest bardzo łatwy do skonfigurowania właściwości w pom z następującą składnią:W Maven, w jaki sposób mogę dynamicznie budować wartość właściwości w czasie wykonywania?
...
<properties>
<myValue>4.06.17.6</myValue>
</properties>
...
Teraz muszę zbudować właściwość, która zależy od wersji mojego pom. Do tworzenia właściwość chcę zrobić następujące (Java pseudo kod):
String[] parts = version.split("\\.");
String.format("V%s_%s_%s_P%s", splitted[0], splitted[1],splitted[2],splitted[3]);
// example: 4.06.17.6 => V_4_06_17_P6
powinna być dynamiczna, ponieważ jest on stosowany jako nazwę znacznika w repozytorium i zawsze musi być zsynchronizowane z wersją z artefakt.
Jakieś pomysły na tworzenie "dynamicznych" właściwości?
A jeśli nie wiążę wtyczki do fazy. Korzystam z wtyczki dodatku do programu maven i nazywam wersję docelową: przygotuj. Jak zrobić to tutaj? – EhmKah
jeśli nie określisz fazy, domyślnie jest ona przypisana do fazy "sprawdzania poprawności", więc powyższy fragment kodu wykona cel, gdy faza walidacji jest aktywna. po bezpośrednim wywołaniu celu, np. 'release: prepare', co się dzieje, to to, że maven uruchamia cel bezpośrednio pomijając dowolne fazy cyklu życia, więc sam cel' release: prepare' nie zobaczy właściwości * ale * cykl życia * rozwidlony * według 'release: prepare' wyświetli to. Tak więc 'release: prepare' nie będzie w stanie użyć właściwości do oznaczania SCM, ale właściwość będzie obecna w rozwidlonej kompilacji, że wtyczka wydania działa –
Jeśli chcesz mieć znacznik SCM na podstawie właściwości (powinieneś zaktualizować Twoje pytanie, aby odzwierciedlić, że jest to twój cel lub rozpocząć drugie pytanie), może być konieczne użycie czegoś takiego jak http://maven.apache.org/plugins/maven-release-plugin/prepare-mojo.html#tagNameFormat to nie da ci podstawienia '_', które chcesz, ani zastrzyku' _P'. Zalecam zmianę wymagań dotyczących nazw tagów, zamiast próbować zginać Mavena ;-) –