nexus를 이용한 library deploy 하는 방법에 대한 간략하게 설명한다.
설명에 앞서 간략한 소개이다.
-
nexus란?
Nexus는 maven에서 사용할 수 있는 가장 널리 사용되는 무료 repository 중의 하나이다 -
nexus를 사용하게된 계기
프로젝트는 여러 컴포넌트로 구성되는데, 공통으로 사용하는 라이브러리 등이 존재하기때문에 nexus를 이용해 repository에 올리는 작업을 진행한다.
nexus를 이용하면 빠르게 라이브러리를 끌어올 수 도 있고, 반대로 개발팀내에서 사용하는 공통 라이브러리들을 nexus에 배포해서 팀간의 공유가 가능하기 때문에 편리하게 사용할 수 있다. -
nexus 저장소의 구성
group : nexus에 설정되어 있는 다른 저장소들을 하나로 묶은 저장소로 생각하면 되는데 그렇게 해야 메이븐의 저장소 설정을 간추릴 수 있다.
proxy: 다른곳에 있는 기존의 메이븐 저장소를 등록하는 것. jboss와 spring 저장소를 proxy 형태로 등록해두면 이 Nexus에서 필요한 의존성을 jboss와 spring 저장소에서 받아올 수 있다.
hosted: 다른 저장소에 없는 파일 또는 proxy를 통해 제공받을 수 없는 파일인 경우에 직접 메이븐 저장소에 올려줘야 하는데 그럴 때 사용하는 저장소 형태가 바로 hosted 이다.
admin 계정으로 로그인을 하면 repository 정보들을 확인할 수 있다. -
기타 설정 관련 URL
http://free4pm.tistory.com/11 등 참조. -
pom.xml 파일 설정
배포 대상 레파지토리 설정하기
<distributionManagement>
<repository>
<id>레파지토리 release 아이디</id>
<url>레파지토리 주소</url>
</repository>
<snapshotRepository>
<id>레파지토리 snapshot 아이디</id>
<url>레파지토리 주소</url>
</snapshotRepository>
</distributionManagement>
빌드 시 레파지토리 정보
<repositories>
<repository>
<id>release 아이디</id>
<url>nexus 경로(release)</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshot id</id>
<url>nexus 경로(snapshot)</url>
<snapshots>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
- ** nexus에 deploy하는 방법**
deploy 하는 방식은 프로젝트 우클릭 > run As > run configuration (eclipse 기준) deploy 하면 된다.
deploy 하고, URL로 접속하면 실시간으로 반영된 정보를 확인할 수 있다.