j'ai défini un miroir local pour tous les dépôts dans le fichier settings.xml:Maven ne remplace pas une variable dans « settings.xml » quand il est invoqué
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file://${mypath}/maven/.m2/repository</url>
</mirror>
Je veux que mon miroir pour pointer vers un chemin local, dans ce cas, le chemin est:
file://${mypath}/maven/.m2/repository
Où $ {} monchemin est une variable que je passe quand j'invoque Maven:
mvn -Dmypath="/D:/test" package
Le problème est que Maven ne remplace pas la variable lorsqu'elle est invoquée. Je peux voir que cette erreur se passe par l'inspection du journal de construction. Par exemple, Maven signale qu'il est en train de télécharger un fichier à partir du fichier: // $ {mypath} /maven/.m2/repository lorsque le fichier correct est: /// D: /test/maven/.m2/repository.
J'ai également noté que Maven remplace correctement ma variable lorsqu'elle est insérée dans la balise enfant url de la balise référentiel:
<repository>
<id>central</id>
<url>http://${mypath}/maven/.m2/repository</url>
</repository>
La construction fonctionne correctement lorsque je remplace la variable dans mon settings.xml par l'URL complète comme dans l'exemple ci-dessous:
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file:///D:test/maven/.m2/repository</url>
</mirror>
N'est-ce pas supposé être '$ {env.M2_MIRROR}'. – OrangeDog