Chodzi o to, że Maven POM jestCzy możliwe jest posiadanie wersji nadrzędnej jako Właściwość dla dzieci?
Jeśli chciałbym, aby wersja mojego nadrzędnego również była wersją moich zależności, należy ustawić wartość właściwości thats $ {project.parent.version}.
Problem pojawia się wtedy, gdy dziecko z mojego głównego POM (Które ma w sobie właściwość $ {project.parent.version}, ponieważ jest to rodzic w projekcie, którego nie administruję) ponownie oblicza nieruchomość i myślę, że wartość utworzonej właściwości jest teraz wersją mojego głównego POM.
--SuperParent (not in my Administration) | Version = 1.2.3
----MainPom | Version = 1.0.0 | Property <test>${project.parent.version}</test> -> 1.2.3
------Child Pom | Version 1.0.0 | Property ${test} is now 1.0.0
<project>
<!-- Super Pom -->
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>1.2.3</version>
</project>
<project>
<!-- MainPom -->
<groupId>othergroupId</groupId>
<artifactId>otherartifactId</artifactId>
<version>1.0.0</version>
<parent>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>1.2.3</version>
</parent>
<properties>
<dependency.version>${project.parent.version}</dependency.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dependencyGroupId<groupId>
<artifactId>dependency</artifactId>
<version>${dependency.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
<project>
<!-- ChildPom -->
<groupId>childGroupId</groupId>
<artifactId>childArtifactId</artifactId>
<version>1.0.0</version>
<parent>
<groupId>othergroupId</groupId>
<artifactId>otherartifactId</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>dependencyGroupId<groupId>
<artifactId>dependency</artifactId>
</dependency>
</dependencies>
</project>
W końcu jest Property $ {dependency.version} w Pom Child 1.0.0 zamiast 1.2.3. Czy to pożądane zachowanie Mavena? I co mogę zrobić, żeby to zadziałało?
Rzeczy, które nie mogą być zmienione:
- SuperPom
- główna Pom Wersja
Więc kiedy zmienia się wersja SuperPom, jedynym możliwym sposobem jest zmiana 2 pól (wersja w jednostce nadrzędnej i własności)? – Serverfrog
Zasadniczo tak. I nie można użyć zmiennej w polu parent.version, ponieważ próbujesz załadować element nadrzędny przed przetworzeniem zmiennych. – Vinicius
To jest absolutnie przygnębiające. – Matthias