'nexus'에 해당되는 글 2건

  1. 2019/08/03 용비 Nexus Maven Configuration
  2. 2019/06/17 용비 CentOS 7.4 에서 Nexus 설치

Nexus Maven Configuration

Articles 2019/08/03 15:19 용비

1. Nexus Maven Repository를 이용하여 Build

  1. Project의 POM 파일(pom.xml)에 Repository 정보 추가

    <repositories> <repository> <id>sw-central</id> <name>Central Repository</name> <url>{Nexus Server Repository Address}</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> </repositories>
  2. Project의 POM 파일(pom.xml)에 Plugin Repository 정보 추가

    <pluginRepositories> <pluginRepository> <id>sw-central</id> <name>Central Repository</name> <url>{Nexus Server Repository Address}</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories>
  3. 설정 완료한 Maven Project Build
    IDE 도구에서 프로젝트를 빌드하거나, VSCode Terminal에서 다음과 같이 실행합니다.

    mvn clean package

    만약 Dependency Library들을 하나의 폴더에 모으고 싶다면 다음과 같이 maven 명령을 실행합니다.

    mvn clean dependency:copy-dependencies package

2. Nexus Maven Repository에 Library 배포

프로젝트 내 다른 개발자의 라이브러리를 참조해야 하거나, 내가 개발한 라이브러리를 다른 개발자들이 참조하여 개발해야 하는 경우가 발생할 수 있습니다.
그런 경우에도, Nexus Repository를 활용하여 라이브러리를 배포할 수 있습니다.
하지만, Nexus Maven Repository에 로컬에서 빌드한 Library를 배포하는 경우에는 다음 사항에 유의해야 합니다.

releasesnapshot을 구분해야 합니다.

  • release : 정식 배포용. 동일한 버전에 대해 재배포 불가
  • snapshot : 개발 및 테스트용. 동일 버전 재배포 가능
    pom.xml 파일 내 [version] 태그의 버전 명에 "SNAPSHOT"이 있으면 snapshot repository로 배포합니다.
  1. Nexus Maven 접근을 위해서 User ID/Password 설정
    Nexus 서버 관리자에게 Nexus 서버에 접근할 수 있는 계정 생성을 신청합니다.
    그 후, 로컬 Maven 저장소로 이동하여 settings.xml 파일을 생성합니다.
    로컬 Maven 저장소는 Terminal에서 다음과 같이 찾을 수 있습니다.

    cd ~/.m2 pwd

    Terminal에서 직접 settings.xml을 생성할 수도 있습니다.

    New-Item -Path C:\Users\USER\.m2\settings.xml -ItemType file -Value "<settings></settings>"

    windows 10 powershell 기준입니다.

    생성된 settings.xml 파일에 생성된 Nexus 서버 계정을 다음과 같이 추가합니다.

    <settings> <servers> <server> <id>sw-central</id> <username>{username}</username> <password>{password}</password> </server> </servers> </settings>

    settings.xml 파일 내 server id는 Project 내 pom.xml 파일의 Repository id와 동일해야 합니다.

  2. 로컬 개발 PC 환경 설정

    로컬 개발 PC에서 외부 https를 호출할 경우, 오류가 발생할 수 있습니다. (개발 망 이슈)

    ex) https://repo.maven.apache.org

    따라서, 이런 경우 Default로 설정되어 있는 Public Maven Central 환경을 disable시켜야 합니다.

    프로젝트의 POM 파일(pom.xml)에 다음 내용을 추가합니다.

    <repositories> <repository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> </repositories>
  3. Project의 POM 파일(pom.xml)에 Distribution Management Repository 정보 추가

    <distributionManagement> <repository> <id>sw-central</id> <name>release repository</name> <url>{Nexus Server Release Repository Address}</url> </repository> <snapshotRepository> <id>sw-central</id> <name>snapshot repository</name> <url>{Nexus Server Snapshot Repository Address}</url> </snapshotRepository> </distributionManagement>
  4. Maven Build를 통해서 배포
    다음과 같이 Nexus 서버에 Library를 배포합니다.
    mvn deploy

3. Local Repository(로컬 파일 시스템 내에 있는 라이브러리) 추가

로컬에 있는 라이브러리들이 있는 폴더, 즉 Local Repository는 다음과 같이 POM 파일(pom.xml)에 추가할 수 있습니다.

<repositories> <repository> <id>local-com</id> <url>file://${basedir}/src/main/resources/lib/</url> </repository> </repositories>
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/856

CentOS 7.4 에서 Nexus 설치

Articles 2019/06/17 13:19 용비
<기본 환경>
CentOS 7.4.1708

<Base Command>
OS Terminate : systemctl power-off (--force)
OS Reboot : systemctl reboot (--force)
<Network Configuration>
Ethernet Card 확인 : nmcli d

<DHCP 설정>
nmtui
service network restart
ip addr
yum check-update
yum update

<Pre-requirements>
Nexus : 3.16.2-01 Version
Java : OpenJDK 1.8

<Installation of Nexus>
1. Java 버전 확인
java -version
설치되어 있지 않을 경우,
yum -y install java-1.8*
2. OS 방화벽 설정
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld (or firewall-cmd --reload)
만약 작업 도중, firewall-cmd 명령어가 실패하면 firewalld 서비스 설치 필요
yum -y install firewalld
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld
3. Nexus Default Port 방화벽 설정
firewall-cmd --permanent --add-port=8081/tcp
firewall-cmd --reload
만약, ERROR: Exception DBusException: org.freedesktop.DBus.Error.AccessDenied 오류가 발생하면,
yum -y install system-config-firewall
system-config-firewall-tui --> Firewall Enabled Check
systemctl start firewalld
systemctl status -l firewalld
이후 방화벽 설정 작업 다시 시도.
그래도 실패하면, 시스템 재시동 (reboot) 이후 작업하면 정상 동작함.

4. Nexus Download
wget --no-check-certificate https://download.sonatype.com/nexus/3/latest-unix.tar.gz
mv latest-unix.tar.gz nexus-3.tar.gz
wget이 정상 동작하지 않을 경우,
yum -y install wget
5. Nexus Extraction and Installation
mkdir /opt/nexus_dir
mv nexus-3.tar.gz /opt/nexus_dir
cd /opt/nexus_dir
tar zxvf nexus-3.tar.gz
6. Nexus Start
cd /opt
chmod -R 777 nexus_dir
/opt/nexus_dir/nexus-3.16.2-01/bin/nexus run
7. References
https://help.sonatype.com/repomanager3/installation
https://help.sonatype.com/learning/repository-manager-3/first-time-installation-and-setup
https://conory.com/blog/42523

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/846