ACTUALIZACIÓN
Utilizando la nueva versión de maven-wrapper y partiendo de
un directorio que contenga un archivo pom.xml
válido:
$ MVNW_VERBOSE=true \
MVNW_REPOURL='https://my-mirror.example.com/maven2' \
mvn wrapper:wrapper -Dmaven=3.8.6
$ MVNW_VERBOSE=true \
./mvnw install
Hoy estuve trabajando en un proyecto que utiliza maven, configurandolo para descargar todas las dependencias de un mirror local.
Durante la inspección de las urls desde donde se realizan las descargas
encuentro que luego de configurar el archivo
.mvn/wrapper/maven-wrapper.properties
con un mirror alternativo, por ejemplo:
distributionUrl=https://my-mirror.example.com/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
wrapperUrl=https://my-mirror.example.com/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
igualmente se realiza la descarga del archivo maven-wrapper-0.5.6.jar
desde
https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar,
ignorando el valor de wrapperUrl
.
El problema se debe a que no se está calculando correctamente la ruta del archivo de properties, consistiendo el arreglo en el siguiente parche:
--- .mvn/wrapper/MavenWrapperDownloader.java.orig 2021-10-01 17:11:55.443675541 -0300
+++ .mvn/wrapper/MavenWrapperDownloader.java 2021-10-01 22:00:58.943934407 -0300
@@ -52,7 +52,7 @@
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
- File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+ File mavenWrapperPropertyFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
Este fué enviado como un pull request a maven-wrapper, pero debido a que el proyecto actualmente se encuentra en estado frozen y es posible que no se aplique es que aprovecho a documentar el fix en un lugar más visible, por lo menos para mi.