我试图从代理后面访问maven存储库.我正确配置了settings.xml(我猜是这样......)
<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>
Run Code Online (Sandbox Code Playgroud)
但我仍然得到一个错误消息,如...如果我没有配置用户ID /密码获取正确的错误消息,这是HTTP响应代码407- 说需要身份验证.但是,如果我配置正确/不正确的代理身份验证,它总是打印下面的错
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
Moh*_*eeq 36
如果以上不起作用
步骤#2:添加wagon-http-lightweight扩展
Wagon HTTP轻量级库允许我们在使用NTLM代理时克服Maven(3.0.4)中的身份验证限制.我们可以按照以下步骤将Wagon HTTP轻量级库添加为Maven扩展:
wagon-http-lightweight-2.2.jar从这里下载.
复制wagon-http-lightweight-2.2.jar到%M2_HOME%/lib/ext文件夹.
用于测试解决方案的示例pom.xml
要测试我们的方法,首先使用以下pom.xml创建一个简单的Maven项目:
<!-- 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>
Run Code Online (Sandbox Code Playgroud)
运行Maven目标如下所述.这应该成功执行并下载所有Maven依赖项:
mvn clean install
Run Code Online (Sandbox Code Playgroud)
检查本地存储库目录(在settings.xml文件中定义)以确保正确下载所有依赖项.
它是NTLM代理吗?如果是,尝试提供domainname\username的username(如在提出这个线程).
<username>DOMAINNAME\USERNAME</username>
Run Code Online (Sandbox Code Playgroud)
小智 7
另一种方法是在您的机器上获取Cntlm(http://cntlm.sourceforge.net/),使用您的域/密码/代理名称在cntlm.ini中配置您的NTLM代理.运行它:
cntlm.exe -v -a NTLMv2 -c cntlm.ini
Run Code Online (Sandbox Code Playgroud)
编辑您的maven $ MAVEN_HOME\conf\settings.xml,并使用代理块:
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>localhost</host>
<port>3128</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
</proxies>
Run Code Online (Sandbox Code Playgroud)
现在使用-s选项运行maven :
mvn -s $MAVEN_HOME\conf\settings.xml <goal>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30612 次 |
| 最近记录: |