I zdefiniowano lokalnego serwera dla wszystkich repozytoriów w pliku settings.xml:Maven nie zastępuje zmienną w „settings.xml”, gdy jest wywoływana
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file://${mypath}/maven/.m2/repository</url>
</mirror>
chcę, że moje lustro, aby wskazywała ścieżka lokalna, w tym przypadku ścieżka jest:
file://${mypath}/maven/.m2/repository
Gdzie $ {mojasciezka} jest zmienną, która mijam kiedy powoływać Maven:
mvn -Dmypath="/D:/test" package
Problem polega na tym, że Maven nie zastępuje zmiennej po jej wywołaniu. Widzę, że ten błąd występuje w wyniku inspekcji dziennika kompilacji. Na przykład Maven zgłasza, że pobiera plik z pliku: // $ {mypath} /maven/.m2/repository, gdy poprawny będzie plik: /// D: /test/maven/.m2/repository.
Mam również zauważyć, że Maven zastępuje poprawnie mojego zmiennej po włożeniu w tagu url dziecięcej repozytorium tagu:
<repository>
<id>central</id>
<url>http://${mypath}/maven/.m2/repository</url>
</repository>
Kompilacja działa poprawnie, gdy zastąpić zmiennej w moim settings.xml przez pełny adres URL, jak w poniższym przykładzie:
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file:///D:test/maven/.m2/repository</url>
</mirror>
Czy to nie powinno być '$ {env.M2_MIRROR}'. – OrangeDog