문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
wiki:3party:nexus [2023/09/22 10:17] 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://{IP 주소}:8081/ | + | http://125.132.25.172:8081/ |
| </ | </ | ||
| '' | '' | ||
| - | Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있다.\\ | + | Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있습니다.\\ |
| {{: | {{: | ||
| - | ==== 2. 최초 계정 및 설정 ==== | + | ===== 2. 최초 계정 및 설정 |
| - | 최초 계정의 비밀번호는 nexus-data/ | + | 최초 계정의 비밀번호는 nexus-data/ |
| 아이디: admin\\ | 아이디: admin\\ | ||
| 비밀번호: | 비밀번호: | ||
| - | * Nexus 버전이 3.17.0 버전 이전이라면 비밀번호는 admin123이다. \\ | + | * Nexus 버전이 3.17.0 버전 이전이라면 비밀번호는 admin123입니다. \\ |
| 로그인에 성공하면 아래와 같이 비밀번호 설정화면이 팝업됩니다.\\ | 로그인에 성공하면 아래와 같이 비밀번호 설정화면이 팝업됩니다.\\ | ||
| 줄 95: | 줄 101: | ||
| 보안을 위해서 익명 사용자는 접근을 허용하지 않도록 하겠습니다. \\ | 보안을 위해서 익명 사용자는 접근을 허용하지 않도록 하겠습니다. \\ | ||
| + | ===== 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 넥서스}} |