[maven] 프록시를 통해 Maven을 어떻게 사용합니까?

프록시를 통해 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 에서 프록시 세션을 편집하십시오.

그것이 도움이되기를 바랍니다 .. 🙂


답변

이러한 문제는 두 가지 문제로 인해 발생할 수 있습니다.

  1. settings.xml에 프록시 구성을 추가해야합니다. 사용자 이름 입력란에 유용한 정보가 있습니다. 도메인 \ 사용자 이름과 같은지 확인하십시오. 거기에 도메인을 설정 하고이 정확한 슬래시를 넣는 것이 중요합니다 ‘\’. 비밀번호에 XML에 친숙하지 않은 문자가 포함 된 경우 <! [CDATA []]> 태그를 사용할 수 있습니다.
  2. 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대상 의 일부를 호스트 이름에서 분리해야합니다. 그렇지 않으면 작동하지 않습니다.