ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 망분리 환경에서 Spring boot gradle 설정
    CS기초/웹 2022. 4. 3. 01:54
    728x90
    반응형

    회사에서 Spring boot 프로젝트를 Spring initializr를 이용해서 초기 세팅을 하고 빌드를 했더니,

    스프링 부트 의존성 라이브러리들을 땡겨지 못해서 gradle 빌드 에러가 났다.

     

    플러그인 id 가 org.springframework.boot인 것을 maven central 레포지토리에서 끌고 와야 하는데, 망분리 환경이라 방화벽에 막힌 듯 했다. 

     

    이럴 경우 몇 가지의 해결 방법이 있다.

     

    1. 핫스팟을 켜고 dependency 라이브러리들을 받아와 local repository에 넣어놓고 빌드때 이용한다. ( .m2 나 .gradle 같은 cache repository에 넣어놓고 사용 )

    2. 방화벽 설정을 변경하여 maven central 레포지토리에 접근 가능하도록 한다.

    3. 자체 maven repository 를 사내망에 구축하고, 여기서 라이브러리들을 땡겨서 쓴다. ( nexus 를 많이 사용한다고 함 )

    4. 제 3자가 만들어놓은 maven repository 사용한다.

     

    우선, 나는 2와 3에 대해서 권한이 없었다. 시도해볼 수 있는 것은 1, 4 였는데, 1은 가능하지만 뭔가 앞으로도 프로젝트 라이브러리 버전이 변경되거나 새로운 의존성을 추가할때마다 내 핫스팟을 켜서 외부망에서 다운받아야 하나?라는 생각이 들어 폭풍 구글링을 한 결과, 4가 가능함을 알게되었다.

     

    바로, 중국에서 만든 것 같은 maven repository인 https://maven.aliyun.com/repository/

    을 활용하는 것이다.

     

    build.gradle 에서 repository 를 mavenCentral() 이 아닌 다음으로 변경해보자.

    buildscript{
    	repository {
    		mavenLocal()
    		maven { url 'https://maven.aliyun.com/repository/google/' }
    		maven { url 'https://maven.aliyun.com/repository/public/' }
    		maven { url 'https://maven.aliyun.com/repository/spring/' }
    		maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
    		maven { url 'https://maven.aliyun.com/repository/spring-plugin/' }
    		maven {
    			url "https://plugins.gradle.org/m2/"
    		}
    		mavenCentral()
       	}
    }

    순서는 buildscript - plugins - apply plugin 순을 지켜야 한다.

     

    그러면 spring, gradle 관련 plugin 들을 잘 끌고오는 것을 확인할 수 있었다.

     

     

    728x90

    댓글

Designed by Tistory.