Я определил локальное зеркало для всех хранилищ в файле settings.xml:Maven не заменить переменную в «settings.xml», когда он вызывается
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file://${mypath}/maven/.m2/repository</url>
</mirror>
Я хочу, чтобы мое зеркало, чтобы указать локальный путь, в этом случае путь:
file://${mypath}/maven/.m2/repository
Где $ {mypath} является переменной, что я прохожу, когда я призываю Maven:
mvn -Dmypath="/D:/test" package
Проблема в том, что Maven не заменяет переменную при ее вызове. Я вижу, что эта ошибка происходит путем проверки журнала сборки. Например, Maven сообщает, что он загружает файл из файла: // $ {mypath} /maven/.m2/repository, когда правильным будет файл: /// D: /test/maven/.m2/repository.
Я также отметил, что Maven правильно заменяет мою переменную, когда она вставляется в URL дочернего тега хранилища тега:
<repository>
<id>central</id>
<url>http://${mypath}/maven/.m2/repository</url>
</repository>
Билд работает правильно, когда я заменить переменную в моей settings.xml по полный URL, как в приведенном ниже примере:
<mirror>
<id>myMirror</id>
<mirrorOf>*</mirrorOf>
<url>file:///D:test/maven/.m2/repository</url>
</mirror>
Не предполагается ли это '$ {env.M2_MIRROR}'. – OrangeDog