Como configurar Maven para trabalhar com NTLM proxy

Eu já venho trabalhando com o Maven [+] a algum tempo e posso afirmar que é uma das melhores ferramentas de gerenciamento de projetos de software e compreenssão, incrivelmente poderosa e versátil, mas longe de ser unanimidade entre os desenvolvedores. Gostaria de deixar bem claro que essa é uma opinião pessoal e eu respeito todos os outros pontos de vista.

Este post nasceu da necessidade de realizar a instalação do Maven num ambiente com esse tipo de proxy (NTLM), pois até então eu apenas havia me deparado com situações onde apenas uma configuração no arquivo de settings.xml como descrito na documentação do Maven bastava (Maven configurando proxy).

Mensagem de Erro

The error message below was constantly displayed when I tryed to run the mvn install command in the project:

C:Dev\MavenTest> mvn clean install
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1 or one of its dependencies could not be resolved: Failed to read artifa
escriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1: Could not transfer artifact org.apache.maven.plugins:maven-clean-pl
ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. ). -> [Help 1]
:pom:2.4.1 from/to central (http://repo.maven.apache.org/maven2): Not authorized by proxy, ReasonPhrase:Proxy Authentication Required (
...

Passo a passo para solucionar o problema

Passo #1: Adicione as configurações de proxy no arquivo de configuração do Maven 

1. Abra o arquivo de configurações do Maven em: %M2_HOME%/conf/settings.xml


#Por padrão no Windows 7/8
C:\users\username\.m2\settings.xml

2. Encontre no arquivo settings.xml a sessão que define a configuração de proxy. Que pode se parecer com o trecho abaixo:
<proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      ...
    </proxy>
    -->
</proxies>

3. Remova os comentários e adicione as suas configurações de proxy, logo você verá algo semelhante ao trecho abaixo:
<proxies>
<proxy> <!-- id compo adiciona --> <id>algo para descrever e identificar seu proxy</id> <!-- Diga ao Maven para usar o proxy. Especifique 'false' se você quiser desligar o proxy. --> <active>true</active> <protocol>http</protocol> <!-- Adicionar o hostname do proxy --> <host>company.proxy.host.com</host> <!-- Adicionar a porta do proxy --> <port>8080</port> <!-- Adicionar o seu username para login no proxy --> <username>myUserName</username> <!-- Adicionar a sua senha --> <password>myPassword</password> <!-- Adicionar as exclusões do proxy --> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy> </proxies>


Atenção: Confirme que todos os dados utilizado no preenchimento host, port, username e password foram preenchidas corretamente com relação aos dados utilizados no seu proxy.

Se mesmo confirmando o preenchimento dos dados e ainda houver problema de acesso a internet através do proxy, você pode pode incluir o seu domínio de rede no campo de username como no exemplo abaixo:
<username>myDomain\myUserName</username>

Passo #2: Adicione a biblioteca wagon-http-lightweight na pasta extension

A biblioteca Wagon HTTP lightweight possibilita ao Maven ultrapassar as limitações em trabalhar com NTLM proxies. Seguindo os passos abaixo para adicionar a biblioteca  Wagon HTTP lightweight como um extensão do Maven:

1. Faça o download da biblioteca wagon-http-lightweight-2.2.jar em: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/2.2/wagon-http-lightweight-2.2.jar
2. Copie o wagon-http-lightweight-2.2.jar para a pasta %M2_HOME%/lib/ext.
3. Execute o comando do Maven com o objetivo desejado, como abaixo. Este deverá ser executado com sucesso e todas as dependências deverão ser baixadas com sucesso.
   mvn Clean install

Verifique o seu repositório local (como definido no arquivo settings.xml) para ter certeza que todas as dependências estão sendo baixadas corretamente.


Comentários

Postagens mais visitadas deste blog

How use the LZMA SDK (7Zip)

How config Maven to work with NTLM proxy

Como utilizar a LZMA SDK (7Zip)