내부망에서 Nexus Repository 구축하기

juhyeon_k·2023년 11월 13일
1

셋팅

목록 보기
2/2


내부망 Nexus Repostiory 관련하여 관련 설정정보 정리한 내용이다.

설치

설치부분은 대부분 인터넷에 나와있는 내용을 보고 확인하시면 문제 없이 설치 가능하다.


자바설정

한가지 주의할점은 오로지 자바 8버전에서만 동작한다는 점 이다. (8이상 아님)

그래서 nexus 설치후 설정부분에 java8 설정을 해야합니다.
해당 nexus를 위한 계정의 기본 JAVA_HOME은 java8 버전으로 맞춰주거나

실행스크립트인 nexus-3.xx.x-xx/bin/nexus 파일내부를 열어서
INSTALL4J_JAVA_HOME_OVERRIDE 항목에 java8 경로를 설정하면 된다

기본설정 ( nexus-3.xx.x-xx/etc/nexus-default.properties )

기본포트는 8081이고 오로지 이 포트를 사용하여 라이브러리 및 웹 관리도구에 접근가능하다.

실행 명령어

nexus-3.xx.x-xx/bin 경로에서 다음 명령어로 실행가능 합니다

./nexus start : nexus repository 서버 실행

./nexus status : nexus repository 서버 상태 확인

./nexus stop : nexus repository 서버 종료

리포지터리 관리자 웹 접속

Nexus Repository 서버를 기동후 IP/PORT로 접속가능하다

최초 로그인시 아이디는 admin이고

로그인 비밀번호는 /nexus-3.xx.x-xx/sonatype-work/nexus3/admin.password 파일에 있다

최초 로그인이후 해당 패스워드는 변경해야한다.

그 이후 자격증명 없이 사용할지 자격증명있는 사용자만 접근가능하게 할것인지 설정가능하다.

기본적으로 Disable anomymous Access 를 추천한다고 한다

Nexus Repository 구성하기

현재 가능한 네트워크 환경은 다음과 같은 환경을 가정하고 구성한다.

Nexus Repository의 종류

Nexus Repository에는 타입이 존재한다.

proxy: 외부 리포지터리를 프록시 해준다. 즉, 내부시스템에서 외부로 직접 접근하지 못하는 환경을 구성할때 프록시를 주로 사용한다.
group: 여러 리포지터리를 그룹핑 한다.
hosted: 실제 현재 nexus에서 라이브러리를 제공한다.주로 자체 개발한 라이브러리를 서비스 할때 hosted 리포지터리를 설정한다.

요약하면 이렇다

현재 구성할수 있는 환경에서 proxy 타입의 리포지터리로 nexus Repository가 외부망의 실제 maven repository 에 요청하여 라이브러리를 받게하는 구성으로 하면 라이브러리를 일일히 하나씩 올리지 않고도 빌드할 라이브러리를 사용가능하다

Nexus Repository 추가 및 내부망 프로젝트 설정
그 이전에 라이브러리가 저장될 경로를 지정한다.
Repository > Blob Stores에서 해당 경로를 지정할 수 있다.

MavenRepository 연결하기
maven repository 같은 경우는 기본적으로 생성되는 proxy 타입의 레포지터리가 존재한다.
Repository > Repositories

상세설정 내용

내부망 프로젝트 build.gradle 설정
credential은 유저를 생성해서 권한을 부여하거나하여 생성 가능하다
repository에 대한 권한을 만들어서 지정할 수 도 있다.

Gradle을 위한 추가 설정
gradle 프로젝트같은경우 프로젝트 빌드시 자동으로 외부에 있는 gradle을 다운 받게 된다.
{프로젝트명}/gradle/wrapper/gradle-wrapper.properties 파일을 보면 알수 있다.

[distributionUrl을 통해 외부에서 gradle을 다운받는다]

해당 gradle 도 로컬에 놓고 경로를 설정할 수있지만 수백개의 gradle 라이브러리를 로컬에 놓고 사용할수없다
해당 Gradle라이브러리를 다운받을수 있도록 raw/proxy 리포지터리를 생성한다.

Gradle 라이브러리를 위한 raw/proxy 타입 레포지터리 생성하기
respository create 버튼을 클릭하여 raw/proxy 타입 Repository를 생성한다.

상세설정

내부망 프로젝트 gradle-wrapper.properties
내부망의 Gradle 설정의 distributionUrl 항목을
NexusRepostiory를 바라보도록 수정한다.
credential을 url에 넣어준다.
형식은 다음과 같다.
http://{nexusRepository 유저 아이디}:{nexusRepository 유저 패스워드}@{nexusRepsitory Host}:{port}/reposiotory/{생성한 리포지터리명}/gradle-x-x-bin.zip

다음과 같이 설정 하면 gradle도 nexus Repository에서 받는것이 가능하다

요약정리
1. proxy 타입의 리포지터리를 사용하면 수동으로 라이브러리를 업로드 하지 않고 외부의 의존성을 받을수 있다.
2. gradle프로젝트 같은경우 gradle 라이브러리를 받기 위해 추가적인 리포지터리 설정이 필요하다

profile
각종 개념들을 자기화하기 위해 정리하는 블로그

0개의 댓글