티스토리 뷰

Nexus repository OSS 3.3 (opensource 사설 저장소) 는 외부 네트워크를 사용하기 힘든 폐쇄망 환경에서 사용하면 좋습니다. 전자정부표준 프레임워크에서 nexus 2.3 에 대해 설명하고 있는 부분도 참고하시면 좋을 것 같습니다. 또한 외부에 공개하기 힘든 라이브러리등을 배포하고 관리하기에도 용이합니다. 이것을 설치 및 실행하는 것은 비교적 쉽지만, 실제 라이브러리를 배포하고 관리하는 것은 그렇지 않습니다. nexus를 사용하기 위해서는 어느정도 프로그래밍(maven,nuget,npm etc ) 쪽에 배경지식이 있어야 가능합니다. 저는 nexus maven 저장소에 Jar(JAVA libarary)를 올려보겠습니다. (구글링으로 저처럼 단편적인 지식 가지고도 사용가능합니다. ^^ )

Java application을 개발할때 오라클 DB 에 접근하려면 ORALCE 사에서 배포하는 ojdbc 라이브러리(오라클 DB 를 접근하기 위한 java libary 입니다.) 가 필요합니다. oracle11g 버전 이상 부터는 ojdbc6 이상을 필요로 하는데 maven central 에 공식적으로 올라온 ojdbc 는 ojdbc14 가 마지막이고 이거는 oracle10g 까지만 호환이 되고 이후에 나온 version(oracle11g, oracle12c etc..) 들은 호환되지 않습니다. 그래서 oracle11g 이상을 사용하기 위해서는 공식사이트를 방문하여 ojdbc6 이상을 다운로드 받아서 app source 에 넣어 주어야합니다.

ojdbc는 maven 에서 ojdbc를 검색하면 많은 검색결과를 나타나지만 대부분 개인이 배포한 라이브러리들입니다. 그래서 저도 다운로드 받은 ojdbc6,7,8 들을 nexus maven 저장소에 올려놓고 java app 에서 maven 으로 ojdbc 의존성(dependency)을 내려받고 사용해보겠습니다. maven 및 저장소는 이미 설치가 되어있다고 가정하겟습니다. (nexus 저장소는 단순히 다운로드 내려받은 jar 실행만 으로도 사용할 수 있습니다.)

  1. deploy(배포)할 계정 생성 및 배포할수 있는 권한 부여
    사용자 생성

  2. 사용자 폴더 아래 자신의 계정 폴더(home directory ~ 으로 표시)가 있을 것입니다. %MAVEN_HOME%/conf/setting.xml 가 있는데 이것을 ~/.m2/setting.xml 으로 복사합니다. 배포할 repository server 의 계정 정보를 등록해주어야합니다.

    ...
    <servers>
     <server>
    <id>배포서버명(임의)</id>
       <username>아이디</username>
       <password>비밀번호</password>
     </server>
    </servers>
    ...

    setting.xml 내부에서 servers 태그를 찾아서 위와 같은 tag 를 추가해주고 자신에게 맞게 바꾸어줍니다.

  3. 내려받은 ojdbc7.jar 폴더로 가서 cmd 를 실행합니다. mvn -v 명령어를 실행하여 maven 이 제대로 설치되어있는지 확인합니다.

    mvn deploy:deploy-file "-DgroupId=oracle" "-DartifactId=ojdbc" "-Dversion=7.0.0" "-Dpackaging=jar" "-Dfile=ojdbc7.jar" "-DgeneratePom=true"  "-DrepositoryId=khphub" "-Durl=http://nexus.khphub.com/repository/maven-releases/"

    위의 명령을 실행하면 jar file 단독으로 배포합니다. 명령어의 파라미터중에 DrepositoryId 의 khphub 는 2번의 배포서버명입니다. 올라간 repository는 아래 처럼 확인 할수 있습니다.
    배포확인

  4. 다른 프로젝트에서 pom.xml 을 사용하여 내려받기 위해서는 repository 를 등록해주어야합니다.

    ...
    <repositories>
        <repository>
            <id>khphub</id>
            <name>khphub</name>
            <url>http://nexus.khphub.com/repository/maven-public/</url>
        </repository>
    </repositories>
    ...
    <dependencies>
    ...
        <dependency>
            <groupId>oracle</groupId>
            <artifactId>ojdbc</artifactId>
            <version>8.0.0</version>
        </dependency>
    ...      
    </dependencies>
    
    ...

    한가지 체크해야해주셧으면 하는 사항은 내려받을때는 maven-public 을 사용했고, 올릴때는 maven-release 로 했다는 것입니다. repository 별로 각각의 file format 및 type 을 가지고 있습니다. maven-public 은 reposiroty(maven-central, maven-snapshot 등등) 들을 하나로 묶어주는 역할을 하여 내려받을때 주로 사용하고 maven-release는 버전 별로 배포 할 때 주로 사용합니다.


'JAVA' 카테고리의 다른 글

Deploy library to maven central repository with gradle  (0) 2017.10.17
Building and distributing Java sources to the Nexus repository  (0) 2017.08.12
Json Data Parse in Java  (0) 2017.06.25
Redis Java Client  (0) 2017.05.19
Socket Message  (0) 2017.01.08
댓글
글 보관함
최근에 올라온 글
Total
Today
Yesterday
링크