반응형

Nexus는 팀 단위 프로젝트에서 라이브러리 공유 등을 할 때 유용하게 사용할 수 있는 무료 Repository이다.

 

Maven을 사용하는 경우 Pom.xml에서 의존성을 넣으면, Maven Central Repository에서 의존성을 가져오게 되는데,

Nexus를 사용하는 경우 Nexus가 Proxy역할을 해주고 원격지 라이브러리를 로컬에 캐싱하기 때문에, 의존성을 가져오는 데 걸리는 시간도 단축될 수 있다.

3rd party library도 Nexus에 등록해두고 사용하면, 따로 라이브러리 파일을 관리해야하는 이슈가 없어진다. 

 

설치 법에 대해 알아보자.

 

1. 다운로드 및 설치 

 - http://www.sonatype.org/nexus/go/에서 파일을 다운 받은 후에 압축을 풀어준다.

 

2. 실행

 - 압축이 풀어진 폴더에 보면 bin폴더가 있는데, 그 안에 nexus를 실행해준다.

(root로 실행하는 경우에만) root권한으로 실행하는 것은 비권장한다고 하면서 팅긴다. vi 에디터 등으로 nexus파일을 직접 열어서 RUN_AS_USER부분의 주석을 풀고 root을 넣어주면 실행이 가능하다.

 

3. 확인 및 로그인

 - jetty기반으로 되어 있고, 포트는 8081이다. http://localhost:8081/nexus로 확인이 가능하다.

   아이디, 비밀번호는 초기설정이 admin / admin123이다.

 

4. 웹 UI 접근에 성공하였으면, Repositories메뉴로 들어가서 Public Repositories를 선택 후, Configuration탭으로 들어간다.

 - Available Repositories로 Central만 남기고 모두 옮겨준다. Save버튼 클릭 

 

5. 이제 상단의 Central을 선택 후, Configuration탭으로 들어간다.

 - Download Remote Indexes옵션을 True로 바꿔준다. (False인 경우 리모트에 접속해서 받아오는 데, True로 하면 인덱싱 되어 있는 목록에서 가져와서 다운로드 속도가 빨라진다고 한다.) Save버튼 클릭 

 

6. 4, 5의 설정을 마치면, Nexus가 동기화 작업을 수행한다.  

 - 매우 오래걸리는 작업이며, 작업 진행 상황 확인은 좌측 메뉴의 Administration/Scheduled Tasks에서 확인이 가능

(개발 머신이 드럽게 느려서, 13분이나 걸림 ㅋㅋㅋㅋ;; 센트럴에 있는거를 전부 땡겨오는듯)

 

7. pom.xml에 repositories 명시해두고 쓰면 된다.


<repositories>
 <repository>
  <id>mycompany.internal.repo</id>
  <url>http://host/nexus/content/repositories/releases/</url>
  <releases>
   <enabled>true</enabled>
  </releases>
 </repository>
</repositories>

 

공통 모듈 같은 경우 별도의 프로젝트로 떼어내서, 해당 소스만 배포하고, 나머지 프로젝트에서 import하여 사용하면, 편리하게 사용이 가능한 것 같음.

3rd party library를 등록해서 사용하면 꽤 유용할 것 같다.

 

우리 프로젝트에서 제대로 사용하려면, 공통 모듈 분리에 대해서 고민해봐야 할 것 같다.   

반응형
,