Nexus Maven Configuration

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>

Trackback

Trackback Address :: http://www.yongbi.net/trackback/856

Comments

What's on your mind?

댓글 입력 폼
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다