요즘 한창 Maven 을 사용법을 익히고 있다.

자바지기님의 위키에서 Maven이란 녀석을 처음 접해보았고, 그 기능에 홀려서 한번 써보려구하는데 이 녀석 무지 까탈스럽기가 그지없다.

Maven 특유의 프로젝트 구조도 적응이 잘 되지 않고, 기본적으로 사용하는 Repository 에는 내가 원하는 라이브러리들이 다 준비되어있지도 않다. 몇일 전에 Oracle JDBC Driver 를 받을려고 pom 파일에 dependency 를 추가하고 빌드를 했더니 ojdbc14-10.2.0.2.0.pom만 다운되고 ojdbc14.jar 파일을 찾을 수 없다며 오류를 뱉어낸다.

이 외에도 몇가지 까탈스러운 점이 토비님의 'Maven 재도전기'에 잘 정리되어있다. 하지만, 특유의 장점을 칭찬하는 많은 글을도 볼 수 있었기에 조금씩 계속 써보려구 노력중이다.

이번에 자바지기님의 강좌글 중에 Artifactory 를 사용해서 개인 Maven Repository  만들 수 있는 글을 읽어보고 개인서버에 구축해보려구 한다.

 - http://www.jfrog.org/sites/artifactory/latest/ 에서 Artifactory 최신 버전을 다운 받는다.
 - JDK 5.x 이상을 설치한다.
 - Tomcat 5.5 이상을 설치한다.

가장 최신버전은 1.2.5 버전이 있는데 artifactory.config.xml 을 이용한 환경설정 중 무슨 문제가 있는지 계속 오류가 난다. 설치 가이드에 보면 JDK 1.6, Tomcat6.x 에 관한 문구가 있는데 아마도 그게 문제가 아닐까 싶다. 내 서버에는 현재 JDK 1.5.0.15, Tomcat 5.5.26 이 설치되어있다. 원인을 찾아보다 이틀을 허무하게 보내고난 후 포기하고 1.2.2 버전을 설치하는 단번에 설치된다.

다운 받은 Artifactory 최신 버전을 적당한 위치에 풀어둔다. 하위 디렉토리의 /etc/artifactory.config.xml 에서 환경설정을 그리고 /data 디렉토리에 Repository DB 파일이 구성된다.

Artifactory는 웹 애플리케이션으로 구현되어 있다. 압축 해제된 디렉토리 아래에 보면 webapps 디렉토리가 있는데 안에 들어있는 artifactory.war 파일을 TOMCAT_HOME/webapps 디렉토리 아래에 복사한다.

TOMCAT_HOME/bin 디렉토리 아래에 catalina.bat 파일을 열어 JAVA_OPTS 에 다음 항목을 추가한다.

JAVA_OPTS = -Dartifactory.home=d:/설치위치/artifactory-1.2.2

TOMCAT 에 추가하지 않고 시스템 환경 변수에 추가해도 된다. Artifactory 설치는 위 과정만 거치면 간단하게 설치할 수 있다.

<ARTIFACTORY_INSTALLATION_FOLDER>/etc/artifactory.config.xml 를 통해서 Repository 를 관리할 수 있다.

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://artifactory.jfrog.org/xsd/1.0.0"
        xsi:schemaLocation="http://artifactory.jfrog.org/xsd/1.0.0
        http://www.jfrog.org/xsd/artifactory-v1_0_0.xsd">
    <!-- Backup every 12 hours -->
    <!--<backupCronExp>0 0 /12 * * ?</backupCronExp>-->
   
 <localRepositories>
  <localRepository>
   <key>private-individual-repository</key>
   <description>Private individual repository</description>
   <handleReleases>true</handleReleases>
   <handleSnapshots>true</handleSnapshots>
  </localRepository>
  <localRepository>
   <key>3rd-party</key>
   <description>3rd party jars added manually</description>
   <handleReleases>true</handleReleases>
   <handleSnapshots>false</handleSnapshots>
  </localRepository>
 </localRepositories>

 <remoteRepositories>
  <remoteRepository>
   <key>ibiblio</key>
   <handleReleases>true</handleReleases>
   <handleSnapshots>false</handleSnapshots>
   <excludesPattern>org/artifactory/**,org/jfrog/**</excludesPattern>
   <url>http://repo1.maven.org/maven2</url>
  </remoteRepository>
  <remoteRepository>
   <key>appfuse</key>
   <handleReleases>true</handleReleases>
   <handleSnapshots>false</handleSnapshots>
   <excludesPattern>org/artifactory/**,org/jfrog/**</excludesPattern>
   <url>http://static.appfuse.org/repository</url>
  </remoteRepository>
 </remoteRepositories>

</config>


위와 같이 설정하게 되면 중앙 Maven Repository와 appfuse의 Mirror 역할을 하게 될 Repository(ibiblio,appfuse) , 3rd party 라이브러리를 관리하기 위한 Repository(3rd-party), 개인적으로 개발한 라이브러리를 관리하기 위한 Repository(private-individual-repository)로 나누어서 관리한다. 물론 상황에 마추어 더 많은 Repository를 관리하는 것 또한 가능하다.

설정이 끝나면 Tomcat 을 가동하고 http://localhost:8080/artifactory 로 접근하면 다음 화면을 볼 수 있다.

사용자 삽입 이미지


Artifactory의 디폴트 사용자는 UserName : admin, Password : password 를 이용하여 로그인할 수 있다.

사용자 삽입 이미지


Artifactory 메인 페이지는 위와 같다.

좌측 메뉴에서 Browse the repository를 선택하면 다음 화면과 같다. 앞에서 설정한 4개의 Repository가 생성되어 있는 것을 볼 수 있다.

사용자 삽입 이미지


Security - Users 메뉴를 통해서 사용자를 추가하거나 기존 사용자의 정보를 변경 할 수 있다.

사용자 삽입 이미지


설치는 이로서 끝이고, 이제 클라이언트의 메이븐이 설치된 Artifactory 를 사용하도록 설정해주어야한다.

메이븐 설정파일의 기본 위치는 USER_HOME/.m2/settings.xml 에 있다. 해당 위치에 파일이 없다면 메이븐 설치폴더 하위의 /confg 에서 찾게된다. 파일을 열고<profiles> 태그안에 다음 내용을 추가한다.

 <profile>
  <id>default</id>
  <properties>
   <tomcat5x.home>D:\tomcat</tomcat5x.home>
  </properties>
  <repositories>
   <repository>
    <id>central</id>
    <url>http://localhost:8080/artifactory/repo</url>
    <snapshots>
     <enabled>false</enabled>
    </snapshots>
   </repository>
   <repository>
    <id>snapshots</id>
    <url>http://localhost:8080/artifactory/repo</url>
    <releases>
     <enabled>false</enabled>
    </releases>
   </repository>
  </repositories>
  <pluginRepositories>
   <pluginRepository>
    <id>central</id>
    <url>http://localhost:8080/artifactory/repo</url>
    <snapshots>
     <enabled>false</enabled>
    </snapshots>
   </pluginRepository>
   <pluginRepository>
    <id>snapshots</id>
    <url>http://localhost:8080/artifactory/repo</url>
    <releases>
     <enabled>false</enabled>
    </releases>
   </pluginRepository>
  </pluginRepositories>
 </profile>

그리고 위에서 추가한 프로파일을 전체 메이븐 프로젝트에서 사용하도록 다음 내용도 추가한다.

  <activeProfiles>
    <activeProfile>default</activeProfile>
  </activeProfiles>

위와 같이 설정 후 Maven 빌드툴을 실행하면 Maven 중앙 Repository 에서 다운되는 모든 라이브러리가 Artifactory Repository에 다음과 같이 저장된다.

사용자 삽입 이미지




※ 이 글은 자바지기님의 강좌글을 기초로 해서 작성되었습니다.
Posted by Arawn Trackback 1 : Comment 2