문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
wiki:3party:nexus [2023/09/22 10:12] khlee 만듦 |
wiki:3party:nexus [2023/11/28 12:56] (현재) khlee |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Nexus ====== | ====== Nexus ====== | ||
<WRAP left notice 80%> | <WRAP left notice 80%> | ||
- | * description : nexus관련 | + | * description : nexus 내용 기술 |
* author | * author | ||
* email : khlee@repia.com | * email : khlee@repia.com | ||
줄 7: | 줄 7: | ||
</ | </ | ||
- | ===== Nexus ===== | + | |
- | ==== Nexus 란? ==== | + | ===== 정보 |
+ | * URL: http:// | ||
+ | * IP: 125.132.25.172 \\ | ||
+ | * PORT: 8081 \\ | ||
+ | * 위치: /opt/nexus \\ | ||
+ | * admin 계정: admin / repia12#$ | ||
+ | ===== Nexus 란? ===== | ||
* Nexus는 메이븐에서 사용할 수 있는 Repository다. \\ | * Nexus는 메이븐에서 사용할 수 있는 Repository다. \\ | ||
* 외부에서 dependency를 수고를 덜고, local nexus(cache)로 사용함으로써 빠르게 라이브러리를 끌어올 수 있고, 개발팀에서 사용하는 공용 라이브러리를 local nexus에 배포해서 팀간에 공유할 수 있다.\\ | * 외부에서 dependency를 수고를 덜고, local nexus(cache)로 사용함으로써 빠르게 라이브러리를 끌어올 수 있고, 개발팀에서 사용하는 공용 라이브러리를 local nexus에 배포해서 팀간에 공유할 수 있다.\\ | ||
줄 16: | 줄 22: | ||
* [[https:// | * [[https:// | ||
- | ===== 설치 ===== | + | |
- | ==== 1. 다운로드 및 설치 ==== | + | ===== 1. 다운로드 및 설치 |
opt 디렉터리에 설치하는 것을 기준으로 진행합니다.\\ | opt 디렉터리에 설치하는 것을 기준으로 진행합니다.\\ | ||
줄 53: | 줄 59: | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</ | </ | ||
- | '' | + | '' |
또한 필요한 경우 '' | 또한 필요한 경우 '' | ||
\\ | \\ | ||
줄 68: | 줄 74: | ||
</ | </ | ||
\\ | \\ | ||
- | Nexus가 성공적으로 실행 중인지 확인하기 위해 로그를 확인할 수 있습니다. | + | Nexus가 성공적으로 실행 중인지 확인하기 위해 로그를 확인할 수 있습니다.\\ |
<code bash> | <code bash> | ||
sudo tail -f / | sudo tail -f / | ||
줄 75: | 줄 81: | ||
웹 브라우저에서 다음 URL을 사용하여 Nexus 웹 인터페이스에 액세스할 수 있습니다.\\ | 웹 브라우저에서 다음 URL을 사용하여 Nexus 웹 인터페이스에 액세스할 수 있습니다.\\ | ||
<code bash> | <code bash> | ||
- | http://localhost:8081/ | + | http://125.132.25.172:8081/ |
</ | </ | ||
'' | '' | ||
- | Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있다.\\ | + | Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있습니다.\\ |
{{: | {{: | ||
- | ==== 2. 최초 계정 및 설정 ==== | + | ===== 2. 최초 계정 및 설정 |
- | 최초 계정의 비밀번호는 nexus-data/ | + | 최초 계정의 비밀번호는 nexus-data/ |
아이디: admin\\ | 아이디: admin\\ | ||
비밀번호: | 비밀번호: | ||
+ | * Nexus 버전이 3.17.0 버전 이전이라면 비밀번호는 admin123입니다. \\ | ||
+ | |||
+ | 로그인에 성공하면 아래와 같이 비밀번호 설정화면이 팝업됩니다.\\ | ||
+ | {{: | ||
+ | |||
+ | 비밀번호 설정 완료 후, 익명에 대한 접근 설정 여부를 물어봅니다.\\ | ||
+ | {{: | ||
+ | 보안을 위해서 익명 사용자는 접근을 허용하지 않도록 하겠습니다. \\ | ||
+ | |||
+ | ===== 3. 레포지토리 생성 ===== | ||
+ | 상위의 톱나바퀴 아이콘 > Repository > Repositories > create repository를 클릭합니다.\\ | ||
+ | {{: | ||
+ | |||
+ | 타입은 maven2(hosted)를 선택합니다.\\ | ||
+ | {{: | ||
+ | <code text> | ||
+ | * proxy: 외부 리포지토리를 프록시 해준다. 즉, 내부 시스템에서 외부에 직접 접근하지 못하는 환경을 구성할때 프록시를 주로 사용한다. | ||
+ | * group: 여러 리포지토리를 그루핑 한다. | ||
+ | * hosted: 실제 현재 nexus에서 라이브러리를 제공한다. 주로 자체 개발한 라이브러리를 서비스할때 hosted 리포지토리를 설정한다. | ||
+ | </ | ||
+ | repository 설정은 아래와 같이 진행하겠습니다.\\ | ||
+ | '' | ||
+ | {{: | ||
+ | |||
+ | ===== 4. 레포지토리에 라이브러리 배포 ===== | ||
+ | * 해당 방법은 구동된 Nexus '' | ||
+ | * 배포할 라이브러리의 pom.xml에 등록하여 바로 repository에 배포하는 방법은 아래의 ref > Nexus에 Spring Maven 라이브러리 배포 및 사용하기 링크 참조.\\ | ||
\\ | \\ | ||
+ | 상자 모양 아이콘 > Upload > 원하는 repository 선택 \\ | ||
+ | {{: | ||
+ | repository에 올릴 라이브러리를 선택하고, | ||
+ | {{: | ||
+ | 완료된 화면은 아래와 같습니다.\\ | ||
+ | {{: | ||
+ | |||
+ | ===== 5. 라이브러리를 build.gralde에 적용하는 방법 ===== | ||
+ | build.gradle에 아래와 같이 기입합니다. | ||
+ | <code text> | ||
+ | repositories { | ||
+ | maven { | ||
+ | url " | ||
+ | credentials { | ||
+ | username ' | ||
+ | password ' | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | dependencies { | ||
+ | implementation group: ' | ||
+ | } | ||
+ | </ | ||
+ | '' | ||
+ | {{: | ||
+ | |||
+ | 넥서스 계정의 별도 관리가 필요하다면 gradle.properties에 아래와 같이 입력한 후에 build.gradle에서 사용 가능합니다.\\ | ||
+ | gradle.properties\\ | ||
+ | <code text> | ||
+ | version = 1.0.0 | ||
+ | nexusUsername = repia-khlee | ||
+ | nexusPassword = 1234 | ||
+ | nexusSnapshotUrl = http:// | ||
+ | </ | ||
+ | |||
+ | build.gradle\\ | ||
+ | <code text> | ||
+ | repositories { | ||
+ | maven { | ||
+ | url project.findProperty(" | ||
+ | credentials { | ||
+ | username project.findProperty(" | ||
+ | password project.findProperty(" | ||
+ | } | ||
+ | } | ||
+ | // jcenter() | ||
+ | } | ||
+ | </ | ||
===== Tip ===== | ===== Tip ===== | ||
+ | * Nexus에서 각 역할과, 계정을 생성하여 관리하는 Repository를 분류할 수 있습니다. 방법은 아래의 Ref > Nexus Repository 설치 및 레포지토리 생성과 역할, | ||
+ | * release, snapshot repository에 따라서 개별 관리가 필요합니다. | ||
===== Troubleshooting ===== | ===== Troubleshooting ===== | ||
+ | * [[https:// | ||
===== Ref ===== | ===== Ref ===== | ||
- | * [[https://myjamong.tistory.com/11|CentOS 7 Jenkins | + | * [[https://devocean.sk.com/blog/ |
+ | * [[https:// | ||
- | {{tag>도봉산핵주먹 jenkins}} | + | {{tag>heon nexus 넥서스}} |