2015. 11. 24. 17:02ㆍOS/개발환경구축
- Nexus 소개
- Nexus Repository의 용도와 목적 그리고 종류
- Nexus 다운로드/설치
- Nexus 실행/중지/재시간/로그
- Nexus 접속/계정
- Public Repositories Group
- Proxy Repository
- 3rd party Repository (Deploy/Use)
- Deploying Jar file to Nexus
- Using jar file from Nexus
Maven에서 사용 할 수 있는 Repository 입니다.
장점으로 외부에서 dependency를 끌어오는 수고를 덜고, local nexus를 proxy(cache)로 사용함으로써 빠르게 라이브러리를 끌어 올 수 있고,
개발팀에서 사용하는 공용 라이브러리를 local nexus에 배포해서 팀간에 공유할 수 있습니다.
nexus 심볼릭 링크도 만들고….
$ sudo cpnexus-2.11.4-01-bundle.tar.gz /usr/local
$ cd /usr/local
$ sudo tar xvzf nexus-2.11.4-01-bundle.tar.gz
실행(start)… 중지(stop), 재시작(restart)
$ cd /usr/local/nexus
$ ./bin/nexus console
$ Starting Nexus Repository Manager...
$ Started Nexus Repository Manager.
포트 정보 등을 변경은 /conf/nexus.properties 에서
# Jetty section
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus
# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus
- 접속 주소 : http://localhost:38081/nexus/
- 최초 생성시에는 ID: admin / pw : admin123 로 기본값으로 설정됨.
- 왼쪽 메뉴상에서 Repositories 를 클릭하면 각종 저장소가 보입니다
Public Repositories라는 repository 그룹에 local repository (Releases와 Snapshots, 3rd party) 와 proxy repository 등이 등록되어 있습니다.
Proxy Repository는 Remote Repository의 내용들에 대한 라이브러리 목록(index)를 Local에 Caching 할 수 있도록 되어 있다.
이렇게 하면 nexus의 proxy repository에 실제 바이너리가 내려와 있지 않더라도, 목록이 미리 내려와 있기 때문에 nexus 의 search 기능을 통해 검색이 가능하다.
"Maven Central Repository"인 "Central" repository를 설정해보자.
"Central repository"를 선택한 후 메뉴에서 "Download Remote indexes" 라는 옵션을 True 로 변경하고 Save 한다.
상단 테이블에서 "Central" repository를 선택한 후 오른 쪽 버튼을 눌러 "update index"를 실행하면,원격 maven repository에서 라이브러리 목록을 읽어서 업데이트 됨.
Maven에서 local nexus를 Proxy(Cache) repository로 설정
$MAVEN_HOME/.m2/setting.xml 파일에서 <mirrors> section 에 아래 내용을 추가 한다. (만약 없으면 만들면 된다. )
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<name>Local nexus repository.</name>
</mirror>
</mirrors>
<servers>
<server>
<id>test-release</id>
<username>admin</username>
<password>1111</password>
</server>
<server>
<id>test-snapshots</id>
<username>testuser</username>
<password>test</password>
</server>
</servers>
</settings>
프로젝트에서 사용하는 3rd party 라이브러리들이나 프로젝트에서 생성한 war, jar 등의 패키징된 Maven artifact들을 Nexus Repository 에 등록하여 사용한다.
upload하기 위한 Repository 선택하고, 3rd Party를 선택 하고, Artifact Upload를 클릭합시다.
<dependency>
<groupId>net.lgdacom.xpayclient</groupId>
<artifactId>xpayclient</artifactId>
<version>1.0</version>
</dependency>
<repositories>
<repository>
<url>http://localhost:8081/nexus/content/repositories/thirdparty/</url>
</repository>
이번에는 생성한 jar 파일을 nexus에 올려 보는 것을 진행 해봅시다.
- settings.xml에 배포 서버 정보(계정 정보를 입력해야 한다.)
- 여기에서 serverid란, .m2/settings.xml 에 있는 정보를 가져오는 것이지요 .(앞에서 설명한)
- 이때 주의해야 할 점은 settings.xml 파일에 설정한 <server><id> 와 pom.xml 에 설정한 <repository><id> 값이 일치해야 한다는 점이다.
<servers>
<server>
<id>test-release</id>
<username>admin</username>
<password>11111</password>
</server>
<server>
<id>test-snapshots</id>
<username>testuser</username>
<password>test</password>
</server>
snapshot 과 release repository를 설정 해야 하며 id는 각 repository 생성시 적었던 id를 입력 한다.
<modelVersion>4.0.0</modelVersion>
<groupId>com.eeee.aaaa</groupId>
<version>1.0.0-SNAPSHOT</version>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
</snapshotRepository>
" <version>1.0.0-SNAPSHOT</version>"
버전에 SNAPSHOT 이라고 하면 snapshot repository로 배포가 되고, 이걸 빼면 release 에 배포가 됩니다.
snapshot은 같은 버전으로 여러번배포가 가능하며(개발 시에 자주 바뀌므로 ..)
release는 같은 버전으로 한번 밖에 배포할 수 없다.(다시 배포하려면 서버에서 지우고 배포)
다음에 maven goal에는 deploy 로 진행을 한다.
'deploy' 를 입력하면 deploy phase에 메이븐에 기본적으로 내장된 'maven-deploy-plugin' 이 수행되면서
<distributionManagement> 에 설정된 저장소로 배포하게 된다.
</dependency>
<repositories>
<repository>
</repository>
</repositories>
참고 :
https://books.sonatype.com/nexus-book/reference/staging-deployment.html
http://bcho.tistory.com/790
http://lahuman.jabsiri.co.kr/m/post/81
끝!!!!!
'OS > 개발환경구축' 카테고리의 다른 글
[Load Test]Apache JMeter User's Manual - 4. Building a Web Test Plan (0) | 2018.04.20 |
---|---|
[Load Test]Apache JMeter User's Manual - 1. Getting Started (0) | 2018.04.20 |
[Load Test]Apache JMeter - 0. What can I do with it? (0) | 2018.04.20 |
Agile , Scrum, Kanban (0) | 2016.03.28 |
ZooKeeper에 대해서 연구 분석 @.@ (2) | 2015.12.21 |
회사 입사이후 개발 환경 구축 후기 (5) | 2015.10.28 |
CI-Jenkins 설치 및 설정 (1) | 2014.09.12 |
Maven 이란 : 라이브러리 관리 기술 (1) | 2013.08.28 |
CBD , Component Based Development (0) | 2013.07.24 |
애자일(AGILE) 방법론 개론 이라고 할까? (0) | 2013.07.24 |