Buduję potok wdrażania dla kilku projektów, które zależą od siebie. Każda kompilacja tworzy nową kompilację wydania z unikalnym numerem wersji, który jest wdrażany w repozytorium Maven. Projekty znajdujące się dalej w potoku są następnie uruchamiane z tą nową wersją jako zależność i wbudowane w podobny sposób.Zmienianie wartości Maven pom.xml <properties> wartości fizycznych
Potrzebuję zmienić wartość właściwości w pom.xml (lub wszystkich poms w projekcie wielomodułowym) przed zbudowaniem projektu. Na przykład w poniższym kodzie "0.1.200" zostanie zmienione na "0.1.345" (lub jakikolwiek jest numer najnowszej wersji). Używanie właściwości systemu nie jest opcją, ponieważ zaktualizowany pom zostanie wdrożony w repozytorium Maven, więc zmiana musi być stała.
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
Czy jest jakiś plugin Maven w ten sposób z jednej instrukcji wiersza poleceń? W przeciwnym razie będę musiał napisać krótki skrypt (np. W języku Ruby), który analizuje i zmienia wszystkie pliki pom.xml w projekcie.
Ta wtyczka ma operacje automatycznego aktualizowania zależności do ich najnowszych wersji, ale nie zauważyłem sposobu na aktualizację pojedynczej właściwości do określonej wartości. –
[Wersja-maven-plugin] (http://mojo.codehaus.org/versions-maven-plugin/examples/update-properties.html) jest w stanie obsłużyć takie właściwości. Zajrzyj do dokumentów. – khmarbaise
Problem z wersjami: update-properties polega na tym, że automatycznie próbuje wykryć, jaka jest najnowsza wersja. W potoku wdrażania, który nie jest dobry, ponieważ może przypadkowo spowodować, że Maven znajdzie zbyt stare lub nowe wersje. Aby uniknąć niepowtarzalnych kompilacji, wymagam jednoznacznej wersji. –