본문 바로가기

Backend

사내 인트라넷 메이븐 연결하기

 

사내에서 의존성을 사용하고 싶었으나 프록시의 벽에 막히고 "안되는구나..😭" 하고 살아왔었다.

 

이번에 개발을 시작하면서 사내 메이븐 settings.xml 파일이 있는 것을 알게 되었고 오늘 하루만에 세팅을 완료했다. 사내 인트라넷 + 프록시를 통해 인터넷이 연결되는 환경에서의 메이븐 설정방법을 기록하고자 한다.

 

준비물: 프록시 IP 주소, 사내 인증서

 

1. settings.xml 세팅

메이븐 세팅이 기록 된 파일이다.

일반적으로 C:\사용자\{UserName}\m.2\setting.xml 에 위치한다.

없다면 생성해주자

a) 프록시 세팅

<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
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">

  <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>{사내 Proxy IP}</host>
      <port>{사내 Proxy Port}</port>
    </proxy>
  </proxies>

</settings>

proxy IP/PW가 있다면 아래 항목 추가

  <proxies>
    <proxy>
      ...
      <username>proxyuser</username>
      <password>somepassword</password>
    </proxy>
  </proxies>

 

2. pom.xml 오류 발생 시

Could not calculate build plan: Plugin org.apache.maven.plugins: maven-resources-plugin:2.6 or one of its dependencies could not be resolved: ...
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.1: ... 

나의 경우 위 2가지 오류가 발생했는데, 원인은 모두 maven 접속문제였다.

 

settings.xml에 아래 문장을 추가하여  repository를 등록해 주자

  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo1.maven.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

 

반드시 https로 호출 해야 한다는 점이 중요하다.

http로 저장한다면 maven build/clean 시 다음 에러를 확인 하게 된다.

Error code 501, HTTPS Required -> [Help 1]

 

크롬으로 http://repo1.maven.org/maven2 로 접속 해 보면 아래와 같은 메시지가 응답되는데

501 HTTPS Required. 
Use https://repo1.maven.org/maven2/
More information at https://links.sonatype.com/central/501-https-required

https://links.sonatype.com/central/501-https-required 에서 More information을 확인 해 보면 http는 2020년 1월 15일 부로 지원이 종료되었다고 한다.

부득이하게 https를 사용할 수 없는 경우 http://insecure.repo1.maven.org/maven2(권장되지 않음)로 교체해주면 된다.

 

 

2. 인증서 등록

만약 https 접속이 안되거나, Spring starter project 생성 시 아래 메시지가 표시된다면 인증서를 등록해야 한다.

SunCertPathBuilderExeption: unable to find valid certification path to requested target

사내 인증서를 사용할것이므로.. keytool 을 사용하여 java에 등록해 주자.

사내 인증서가 없다면 구글에 InstallCert 를 검색해서 생성한다.

 

cmd.exe를 실행시켜 아래 명령을 실행한다.

keytool -import -file {인증서 경로} -keystore "{자바 홈}\jre\lib\security\cacerts" -storepass "changeit"

> 이 인증서를 신뢰합니까? [아니오]:

라고 나올텐데 라고 입력하고 엔터를 치면 등록이 완료된다.

cacerts 비밀번호를 안바꿨다면 changeit일 것이다.

 

 

3. (Optional) 이클립스 Network 항목 변경

General > Network Connections > Manual 선택 후 Proxy 설정

 

 

'Backend' 카테고리의 다른 글

Springboot (2) 단위 테스트  (0) 2020.04.18
Springboot (1) 개발환경 설정  (0) 2020.04.17
Spring Batch + MyBatis 연결방법  (0) 2020.03.18
Spring Batch 메타 테이블 비 활성화  (0) 2020.03.17
Spring Batch 시작하기  (0) 2020.03.15