Я определил локальное зеркало для всех репозиториев в файле 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>