maven 2 - how - Puede acceder al repositorio maven desde detrás del proxy, necesita ayuda
maven repository (4)
¿Es un proxy NTLM? Si es así, intente proporcionar el domainname/username
de domainname/username
para el username
(como se sugiere en este hilo ).
<username>DOMAINNAME/USERNAME</username>
Estoy tratando de acceder al repositorio maven desde detrás del proxy. Configuré settings.xml correctamente (supongo que sí ...)
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<username>username</username>
<password>password</password>
<host>12.34.56.78</host>
<port>8080</port>
</proxy>
</proxies>
Pero aún recibo un mensaje de error como ... si no configuro el ID de usuario / contraseña, aparece el mensaje de error correcto, que es el código de respuesta HTTP 407
, que dice que se requiere autenticación. Pero si configuro la autenticación proxy correcta / incorrecta, siempre se imprime debajo del mensaje de error ...
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom [WARNING] Unable to get resource ''org.apache.maven.plugins:maven-clean-plugin:pom:2.2'' from repository central (http://repo1.maven.org/maven2): Error trans ferring file: Server redirected too many times (20) Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom [WARNING] Unable to get resource ''org.apache.maven.plugins:maven-clean-plugin:pom:2.2'' from repository central (http://repo1.maven.org/maven2): Error trans ferring file: Server redirected too many times (20) [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR
Otra alternativa es obtener Cntlm ( http://cntlm.sourceforge.net/ ) en su máquina, configurar su proxy NTLM en cntlm.ini con su dominio / contraseña / nombre de proxy, etc. ejecutarlo:
cntlm.exe -v -a NTLMv2 -c cntlm.ini
Edite su maven $ MAVEN_HOME / conf / settings.xml , y use el bloque de proxies:
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>localhost</host>
<port>3128</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
</proxies>
Ahora ejecuta maven con la opción -s
:
mvn -s $MAVEN_HOME/conf/settings.xml <goal>
Si lo anterior no funciona
Paso # 2: Agregar la extensión wagon-http-lightweight
La biblioteca ligera de Wagon HTTP nos permite superar las limitaciones de autenticación en Maven (3.0.4) cuando se trabaja con proxies NTLM. Podemos seguir los pasos a continuación para agregar la biblioteca ligera Wagon HTTP como una extensión de Maven:
Descarga el
wagon-http-lightweight-2.2.jar
desde here .Copie
wagon-http-lightweight-2.2.jar
en la%M2_HOME%/lib/ext
.
Ejemplo pom.xml para probar la solución
Para probar nuestro enfoque, primero cree un proyecto simple de Maven con el siguiente pom.xml:
<!-- pom.xml -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.thira.testmavenplugindl</groupId>
<artifactId>test-maven-plugin-dl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Test Maven Plugin Download Issue</name>
<description>Example pom file to test Maven dependency download with NTLM proxies</description>
</project>
El correr el objetivo Maven se describe a continuación. Esto debería ejecutarse con éxito y descargar todas las dependencias de Maven:
mvn clean install
Verifique su directorio de repositorio local (como se define en el archivo settings.xml) para asegurarse de que todas las dependencias se descarguen correctamente.
También me topé con este problema, pasé mucho tiempo buscando una solución al error NTLM. El problema de NTLM no desaparece, incluso si prefijamos el nombre de usuario con el nombre de dominio solo en la etiqueta proxy, también debemos prefijar los identificadores de usuario en las etiquetas de servidor como se indica a continuación ...
<server>
<id>isb-libs-dev</id>
<username><internal.java.corp>/username</username>
<password>password</password>
</server>