프록시를 통해 maven을 사용한 경험을 공유하고 싶습니다.
다음과 같은 예외 및 메시지가 발생할 가능성이 높습니다.
'org.apache.maven.plugins'에 대한 저장소 메타 데이터를 검색 할 수 없습니다. 저장소 : 오류로 인한 중앙 : 파일 전송 오류 : 연결 거부 : 연결
또는
[경고] org.apache.maven.plugins : maven-clean-에 대한 플러그인 설명자를 검색하지 못했습니다. 플러그인 : 2.5 : 플러그인 org.apache.maven.plugins : maven-clean-plugin : 2.5 또는 그 중 하나 종속성을 해결할 수 없습니다.에 대한 아티팩트 설명자를 읽지 못했습니다. org.apache.maven.plugins : maven-clean-plugin : jar : 2.5
프록시 서버를 사용하도록 Maven을 구성하는 방법은 무엇입니까?
답변
Maven 프록시 설정에 대한 자세한 내용은 미니 안내서를 참조하십시오 .
기본적으로 전역 설정 ( [maven install]/conf/settings.xml
) 또는 사용자 설정 ( ${user.home}/.m2/settings.xml
) 의 프록시 섹션 이 올바르게 구성되어 있는지 확인해야 합니다. 암호는 일반 위치에 일반 텍스트로 저장하지 않으려면 사용자 설정에서이 작업을 수행하는 것이 좋습니다.
Maven 2.1은 비밀번호 암호화를 도입 했지만 암호화가 프록시 설정 및 저장소 비밀번호에 적용되는지 여부를 확인하는 데 어려움을 겪지 않았습니다 (그렇지 않은 이유는 모르겠습니다).
자세한 내용은 settings.xml에 주석 처리 된 프록시 구성과이를 수정하는 방법에 대한 지침이 있습니다.
미니 가이드에서 설정은 다음과 같아야합니다.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
[...]
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>proxy.somewhere.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>somepassword</password>
<nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
</proxy>
</proxies>
[...]
</settings>
답변
어딘가에 서버에 SSH 터널을 설정하십시오.
ssh -D $PORT $USER@$SERVER
리눅스 (bash) :
export MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"
윈도우 :
set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"
답변
나는 또한이 문제가 있었고 settings.xml
내 .m2
폴더 의 파일 을 편집하여 해결했습니다 . 내 settings.xml
지금은 이렇게 :
<settings>
<proxies>
<proxy>
<id>genproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxyHost</host>
<port>3128</port>
<username>username</username>
<password>password</password>
</proxy>
</proxies>
</settings>
답변
또한 일부 플러그인 (원격 리소스를 염두에두고)은 MAVEN_OPTS를 통한 프록시 구성 만 허용하는 오래된 라이브러리를 사용합니다.
-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>
이 인증에 붙어있을 수 있습니다.
답변
설정하려면 메이븐 프록시 :
~ / .m2 / settings.xml 파일 에서 프록시 세션을 편집 하십시오 . 파일을 찾을 수 없으면 파일을 작성하십시오.
<settings>
<proxies>
<proxy>
<id>httpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>your-proxy-host</host>
<port>your-proxy-port</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
<proxy>
<id>httpsproxy</id>
<active>true</active>
<protocol>https</protocol>
<host>your-proxy-host</host>
<port>your-proxy-port</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
</proxies>
</settings>
또는
{M2_HOME} /conf/settings.xml 에서 프록시 세션을 편집하십시오.
그것이 도움이되기를 바랍니다 .. 🙂
답변
이러한 문제는 두 가지 문제로 인해 발생할 수 있습니다.
- settings.xml에 프록시 구성을 추가해야합니다. 사용자 이름 입력란에 유용한 정보가 있습니다. 도메인 \ 사용자 이름과 같은지 확인하십시오. 거기에 도메인을 설정 하고이 정확한 슬래시를 넣는 것이 중요합니다 ‘\’. 비밀번호에 XML에 친숙하지 않은 문자가 포함 된 경우 <! [CDATA []]> 태그를 사용할 수 있습니다.
- maven 2.2.0이 프록시를 통해 전혀 작동하지 않는 것을 알았습니다 .2.2.1은 완벽하게 작동합니다.
이들 중 일부가 생략되면 maven이 임의의 오류 메시지와 함께 실패 할 수 있습니다.
내가 한 것처럼 6 시간 동안이 문제를 해결하는 누군가를 구해 주었기를 바랍니다.
답변
이것에 대한 내 경험을 추가하기 만하면 회사의 프록시는 http://webproxy.intra.companyname.com:3128
입니다. maven 이이 프록시를 통해 작동하려면 설정이 정확히 이와 같아야합니다
<settings>
<proxies>
<proxy>
<id>default</id>
<active>true</active>
<protocol>http</protocol>
<host>webproxy.intra.companyname.com</host>
<port>3128</port>
</proxy>
</proxies>
</settings>
다른 프록시 구성 파일과는 달리, protocol
여기에서는 프록시 프로토콜이 아닌 프록시 서버에 연결하는 방법에 대해 설명합니다. http
대상 의 일부를 호스트 이름에서 분리해야합니다. 그렇지 않으면 작동하지 않습니다.