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로 접속하면 실시간으로 반영된 정보를 확인할 수 있다.

 

+ Recent posts