我的机器正在使用代理连接互联网。但是在运行maven build命令时出现以下错误。它在我禁用代理时有效。我不明白为什么代理在这里很重要。
[ERROR] Failed to execute goal on project flink-dist_2.11: Could not resolve dependencies for project org.apache.flink:flink-
dist_2.11:jar:1.7-SNAPSHOT: Failed to collect dependencies at
org.apache.flink:flink-shaded-hadoop2-uber:jar:1.7-SNAPSHOT:
Failed to read artifact descriptor for org.apache.flink:flink-shaded-hadoop2-uber:jar:1.7-SNAPSHOT:
Could not transfer artifact
org.apache.flink:flink-shaded-hadoop2-uber:pom:1.7-SNAPSHOT from/to apache.snapshots (https://repository.
apache.org/snapshots): Remote host closed connection during handshake: SSL peer shut down incorrectly -> [Help 1]
答案 0 :(得分:1)
您是否尝试过$ {user.home} /。m2 / settings.xml上的settings.xml,请参见https://maven.apache.org/guides/mini/guide-proxies.html
在Windows7和更高版本中,它将是c:\ users \ user_name \ .m2
答案 1 :(得分:0)
Maven试图连接到远程存储库,以便将项目依赖项下放到其本地存储库中。这是一个网络连接,显然,您的代理配置使Maven尝试失败。
答案 2 :(得分:0)
握手期间远程主机关闭的连接:SSL对等体错误地关闭: 这表明您要实现的服务器主机已关闭,请首先验证连接是否建立良好,然后重试。
答案 3 :(得分:0)
可以通过相应地配置Mavan以使用代理服务器来尝试此操作:-https://dzone.com/articles/how-get-maven-working-through
答案 4 :(得分:0)
在我的工作中,我们遇到Windows
工作站和NTLM2
具有身份验证的代理服务器。
以下解决方案对我来说很好。该解决方案的好处是它也可以与Maven,Git和IntelliJ IDE一起使用。
要通过NTLM2代理进行访问,需要完成的建议步骤:
Cntlm
代理。localhost:3128
上使用本地代理。您无需在此处配置身份验证。详细信息:
键入cntlm.exe -H -d your_domain -u your_username
。
它将询问您的密码。输入它,Cntlm将为您提供哈希,如下所示:
Password:
PassLM 4E9C185932FER43543RWEFER33R4R34C
PassNT 6E9F1254353RDR34RFSDWER3443RDC9A
PassNTLMv2 43534RFWDWE3434RWFWER434C4FA224F
编辑/检查您的cntlm.ini
文件
Username <your-domain-username>
Domain <windows-donain-name>
Auth NTLMv2
PassNTLMv2 <hash>
Proxy <proxy-host:port>
NoProxy localhost, 127.0.0.*, 10.*, 192.168.*
Listen 3128
使用一个简单的脚本启动Cntlm:start-proxy.cmd
cd %CNTLM_HOME%
rem verbose mode
cntlm -v -c cntlm.ini
rem verbose with logfile
rem cntlm -v -c cntlm.ini -T %CNTLM_HOME%\nctlm.log
rem test configuration
rem cntlm -c cntlm.ini -I -M http://google.com
停止Cntlm服务器:stop-proxy.cmd
taskkill /IM cntlm.exe /F
然后,您可以创建两个cmd文件,这些文件会根据您的喜好更改Maven配置:
mvn-internet.cmd
call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.internet %MAVEN_HOME%\conf\settings.xml
mvn-intranet.cmd
call java8.cmd
del %MAVEN_HOME%\conf\settings.xml
copy %MAVEN_HOME%\conf\settings.xml.nexus %MAVEN_HOME%\conf\settings.xml
settings.xml.internet
<settings xmlns=...>
<localRepository>...</localRepository>
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>localhost</host>
<port>3128</port>
<nonProxyHosts>locahost</nonProxyHosts>
</proxy>
</proxies>
</settings>
settings.xml.nexus
<settings>
<localRepository>...</localRepository>
<mirrors>
<mirror>
<id>local-lalm</id>
<name>local-lalm</name>
<url>https://nexus.xxx...</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>use-local-repo</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>LALM-global</id>
<url>https://nexus.xxx...</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>LALM-global</id>
<url>https://nexus.xxx...</url>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
</profiles>
</settings>
对Git进行相同操作
git-internet.cmd
call java8.cmd
rem git config --global http.proxy username:password@localhost:3128
git config --global http.proxy localhost:3128
git-intranet.cmd
call java8.cmd
git config --global --unset http.proxy
Cunfigure IntelliJ
Maven home directory
和User settings file
的配置。 在那之后,您将在IntelliJ和命令行中使用相同的Maven配置,因此每种思维都将以相同的方式在IDE和命令行中工作。
您可以使用新的cmd文件在使用与不使用代理服务器之间进行即时更改。
此配置需要10分钟。然后您就可以忘记此代理问题了。