사용자 도구

사이트 도구


wiki:3party:nexus

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
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      : heon   * author      : heon
   * email       : khlee@repia.com   * email       : khlee@repia.com
줄 7: 줄 7:
 </WRAP> </WRAP>
  
-===== Nexus ===== + 
-==== Nexus 란? ====+===== 정보 ===== 
 +* URL: http://nexus.repia.com:8081 \\ 
 +* 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://www.ibm.com/garage/method/practices/deliver/tool_nexus/|IBM Nexus]] \\   * [[https://www.ibm.com/garage/method/practices/deliver/tool_nexus/|IBM Nexus]] \\
  
-===== 설치 ===== + 
-==== 1. 다운로드 및 설치 ====+===== 1. 다운로드 및 설치 =====
  
 opt 디렉터리에 설치하는 것을 기준으로 진행합니다.\\ opt 디렉터리에 설치하는 것을 기준으로 진행합니다.\\
줄 53: 줄 59:
 WantedBy=multi-user.target WantedBy=multi-user.target
 </code> </code>
-'' /opt/nexus/nexus-3.x.x-xx/ ''을 Nexus 설치 디렉터리로 변경해야합니다.\\+'' /opt/nexus/nexus-3.x.x-xx/ ''을 Nexus 설치 디렉터리로 변경해야합니다.\\
 또한 필요한 경우 ''User''를 Nexus를 실행할 사용자로 변경합니다.\\ 또한 필요한 경우 ''User''를 Nexus를 실행할 사용자로 변경합니다.\\
 \\ \\
줄 68: 줄 74:
 </code> </code>
 \\ \\
-Nexus가 성공적으로 실행 중인지 확인하기 위해 로그를 확인할 수 있습니다.+Nexus가 성공적으로 실행 중인지 확인하기 위해 로그를 확인할 수 있습니다.\\
 <code bash> <code bash>
 sudo tail -f /opt/nexus/sonatype-work/nexus3/log/wrapper.log sudo tail -f /opt/nexus/sonatype-work/nexus3/log/wrapper.log
줄 75: 줄 81:
 웹 브라우저에서 다음 URL을 사용하여 Nexus 웹 인터페이스에 액세스할 수 있습니다.\\ 웹 브라우저에서 다음 URL을 사용하여 Nexus 웹 인터페이스에 액세스할 수 있습니다.\\
 <code bash> <code bash>
-http://{IP 주소}:8081/+http://125.132.25.172:8081/
 </code> </code>
 ''Nexus의 기본 port는 8081입니다.''\\ ''Nexus의 기본 port는 8081입니다.''\\
  
-Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있다.\\+Nexus 구동에 성공하면 아래와 같은 화면을 볼 수 있습니다.\\
 {{:wiki:3party:20230922_101048.png?400|}} {{:wiki:3party:20230922_101048.png?400|}}
  
-==== 2. 최초 계정 및 설정 ==== +===== 2. 최초 계정 및 설정 ===== 
-최초 계정의 비밀번호는 nexus-data/admin.password 파일 안에 기입되어 있다.\\+최초 계정의 비밀번호는 nexus-data/admin.password 파일 안에 기입되어 있습니다.\\
 아이디: admin\\ 아이디: admin\\
 비밀번호: 위의 사항 참조\\ 비밀번호: 위의 사항 참조\\
-* Nexus 버전이 3.17.0 버전 이전이라면 비밀번호는 admin123다. \\+* Nexus 버전이 3.17.0 버전 이전이라면 비밀번호는 admin123입니다. \\
  
 로그인에 성공하면 아래와 같이 비밀번호 설정화면이 팝업됩니다.\\ 로그인에 성공하면 아래와 같이 비밀번호 설정화면이 팝업됩니다.\\
줄 95: 줄 101:
 보안을 위해서 익명 사용자는 접근을 허용하지 않도록 하겠습니다. \\ 보안을 위해서 익명 사용자는 접근을 허용하지 않도록 하겠습니다. \\
  
 +===== 3. 레포지토리 생성 =====
 +상위의 톱나바퀴 아이콘 > Repository > Repositories > create repository를 클릭합니다.\\
 +{{:wiki:3party:create.png?400|}} \\
  
 +타입은 maven2(hosted)를 선택합니다.\\
 +{{:wiki:3party:repomake.png?400|}}\\
 +<code text>
 +* proxy: 외부 리포지토리를 프록시 해준다. 즉, 내부 시스템에서 외부에 직접 접근하지 못하는 환경을 구성할때 프록시를 주로 사용한다.
 +* group: 여러 리포지토리를 그루핑 한다.
 +* hosted: 실제 현재 nexus에서 라이브러리를 제공한다. 주로 자체 개발한 라이브러리를 서비스할때 hosted 리포지토리를 설정한다.
 +</code>
 +repository 설정은 아래와 같이 진행하겠습니다.\\
 +''해당 이미지는 예시일 뿐입니다. 실제로는 Version.Policy별로 구분해서 레포지토리를 생성 및 사용해야합니다.''\\
 +{{:wiki:3party:reposet.png?400|}}\\
  
 +===== 4. 레포지토리에 라이브러리 배포 =====
 +* 해당 방법은 구동된 Nexus ''웹페이지''에서 바로 진행하는 방법입니다.\\
 +* 배포할 라이브러리의 pom.xml에 등록하여 바로 repository에 배포하는 방법은 아래의 ref > Nexus에 Spring Maven 라이브러리 배포 및 사용하기 링크 참조.\\
 +\\
 +
 +상자 모양 아이콘 > Upload > 원하는 repository 선택 \\
 +{{:wiki:3party:reposet2.png?400|}}\\
 +
 +repository에 올릴 라이브러리를 선택하고, 필드를 입력해줍니다.\\
 +{{:wiki:3party:reposet3.png?400|}}\\
 +
 +완료된 화면은 아래와 같습니다.\\
 +{{:wiki:3party:reposet4.png?400|}}
 +
 +===== 5. 라이브러리를 build.gralde에 적용하는 방법 =====
 +build.gradle에 아래와 같이 기입합니다.
 +<code text>
 +repositories {
 +    maven {
 +        url "repositoy url"
 +        credentials {
 +            username 'your-username'
 +            password 'your-password'
 +        }
 +    }
 +}
 +dependencies {
 +    implementation group: 'your-group-id', name: 'your-artifact-id', version: 'version'
 +}
 +</code>
 +''repositoy url''은 아래의 사진과 같이 확인 가능합니다.\\
 +{{:wiki:3party:reposet5.png?600|}} \\
 +
 +넥서스 계정의 별도 관리가 필요하다면 gradle.properties에 아래와 같이 입력한 후에 build.gradle에서 사용 가능합니다.\\
 +gradle.properties\\
 +<code text>
 +version = 1.0.0
 +nexusUsername = repia-khlee
 +nexusPassword = 1234
 +nexusSnapshotUrl = http://125.132.25.172:8081/repository/repia-snapshot/
 +</code>
 +
 +build.gradle\\
 +<code text>
 +repositories {
 +        maven {
 +            url project.findProperty("nexusSnapshotUrl")
 +            credentials {
 +                username project.findProperty("nexusUsername")
 +                password project.findProperty("nexusPassword")
 +            }
 +        }
 +//    jcenter()
 +}
 +</code>
 ===== Tip ===== ===== Tip =====
 +  * Nexus에서 각 역할과, 계정을 생성하여 관리하는 Repository를 분류할 수 있습니다. 방법은 아래의 Ref > Nexus Repository 설치 및 레포지토리 생성과 역할,계정 생성 링크 참조.
 +  * release, snapshot repository에 따라서 개별 관리가 필요합니다.
 ===== Troubleshooting ===== ===== Troubleshooting =====
 +  *  [[https://github.com/kindredgroup/puppet-nexus/issues/3|FileDescriptors 에러가 발생한경우]]
  
 ===== Ref ===== ===== Ref =====
  
-  * [[https://myjamong.tistory.com/11|CentOS 7 Jenkins 설치 :: 마자몽]]+  * [[https://devocean.sk.com/blog/techBoardDetail.do?ID=163423|Nexus Repository 설치 및 레포지토리 생성과 역할,계정 생성]] 
 +  * [[https://devocean.sk.com/blog/techBoardDetail.do?ID=163425|Nexus에 Spring Maven 라브러리 배포 및 사용하기]]
  
  
-{{tag>도봉산핵주먹 jenkins}}+{{tag>heon nexus 넥서스}}
/volume1/web/dokuwiki/data/attic/wiki/3party/nexus.1695345429.txt.gz · 마지막으로 수정됨: 2023/09/22 10:17 저자 khlee