'Maven'에 해당되는 글 3건

  1. 2009/09/22 Sun 용 Maven Repository (2)
  2. 2009/09/18 Maven에 ojdbc14 디펜던시 넣기
  3. 2009/09/09 Google App Engine for Java 용 Maven 프로젝트 구축하기 (2)

Sun 용 Maven Repository

|
Maven을 사용하면서 가장 번거로운 일 중에 하나가 Sun에서 배포되는 라이브러리를 추가할 때입니다. 메이븐 중앙 저장소(Maven Central Respository)에는 분명히 검색인 되지만 아티팩트(jar)가 없어서, m2eclipse에서 Missing Artifact... 라는 에러가 나옵니다.

지금까지는 다른 분들이 올려놓은 레포지토리를 연결해서 사용하거나 일일이 여러분의 로컬 레포지토리에 인스톨하여야 해결되었지만.. Sun에서도 Maven 1과 Maven 2용 레포지토리를 운영하고 있으니 간단하게 레포지토리를 추가하여 해결할 수 있습니다.

여러분의 POM.xml에<repositories> 아래에 다음과 같은 저장소 정보를 입력하세요~
    <repository>
        <id>maven2-repository.dev.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2/</url>
        <layout>default</layout>
    </repository>


만약 이클립스에서 m2eclipse 플러그인을 사용하신다면 다음과 같이 추가할 수 있습니다.


이렇게 추가하시면 Sun 에서 배포하는 디펜던시들을 마음껏 편하게 이용하실 수 있습니다.

보너스로~ Jboss 레포지토리 정보도 알려드리겠습니다. 함께 추가하시면 거의 모든 디펜던시들을 잘 이용하실 수 있습니다. ;-)
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
        <repository>
            <id>jboss-repository</id>
            <name>Jboss Repository for Maven 2</name>
            <url>http://repository.jboss.com/maven2/</url>
        </repository>
    </repositories>

더욱 상세한 정보는 https://maven2-repository.dev.java.net/ 에서 확인하세요~
저작자 표시 비영리
Trackback 0 And Comment 2

Trackback http://blog.java2game.com/trackback/334 관련글 쓰기

  1. 컴바이블 2010/02/08 12:07 address edit & del reply

    Maven을 잘 사용하시는 것 같아서 질문좀 드리려구요~
    http://code.google.com/p/ebi-pride/ 여기의 데이터베이스를 설치하는 중에 프로젝트가 메이븐으로 되어있는데, 제가 메이븐을 사용해본적이 없어서..
    필요한 환경은 다 다운로드, 설치했습니다.

    Alternatively, if you host your own repository you can deploy the file there:
    mvn deploy:deploy-file -DgroupId=uk.ac.ebi.pride -DartifactId=pride-core -Dversion=2.5.7 -Dclassifier=javadoc -Dpackaging=javadoc -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

    위와같은 메세지에서 Dfile, Durl, DrepositoryId 에 각각 설정해줘야하는 값이 어떤것인지 좀 조언해주세요~

    • 장선진 jangsunjin 2010/02/08 16:52 address edit & del

      안녕하세요~ 컴바이블님 :-)

      말씀하신 내용은 Maven에서 디폴로이(배포)를 하는 명령어입니다. 즉 지금 프로젝트에 있는 것들을 배포할 건데요~

      메이븐은 내부적으로 코디네이트(좌표)라는 체계를 사용하여 모든 산출물을 관리하고 있습니다.

      코디네이트는 Group ID, Artifact ID, Version, classifier, packaging으로 구성되어 있습니다. 위의 내용을 보아 버전이 2.5.7인 pride-core라는 프로젝트의 javadoc을 만들어 배포하라는 명령어입니다. 그 파일을 어디에다 둘 것인가가 바로 -Durl 옵션이구요~ 만약 기본값으로 두시면 pride-core-2.5.7.jar 라는 Javadoc을 포함한 JAR 파일이 ~/.m2 아래에 생성될 것입니다.

      여기서 -DrepositoryId는 만약 사설 저장소(예를 들어 메이븐의 넥서스와 같은)가 있다면 이 저장소에 생성한 배포 파일을 저장소에 넣어 달라는 의미입니다. 만약 공공 저장소 ID를 지정하시면 공공 저장소에 배포됩니다.

      그리고 -Dfile은 배포하시는 파일명을 메이븐이 자동으로 정해주는 pride-core-2.5.7.jar라는 파일명대신 다른 파일명을 지정하시는 경우 사용하시면 됩니다. 간단하게 pride-core-javadoc.jar 라고 지정하시면 보기도 쉽고 의미도 정확하게 알 수 있습니다.

      음 classifier가 javadoc이니 아마 HTML 파일이 생성될 수 도 있을 것 같습니다.

      그럼 참고가 되었으면 좋겠습니다. :-)

Maven에 ojdbc14 디펜던시 넣기

|
Maven을 사용하여 메이븐 프로젝트를 구성하는 경우, 가장 귀찮은 것이 메이븐 중앙 레포지토리에 없는 디펜던시 아티팩트를 추가하는 일입니다.

특히 Oracle의 ojdbc14.jar 아티팩트의 경우 디펜던시로 추가하려고 m2eclipse에서 설정하면 잘 설정이 되지만, 실제 아티팩트인 ojdbc14.jar가 메이븐 중앙 레포지토리에 없어서 아티팩트가 없다는 에러가 발생합니다.

Oracle이 ojdbc14.jar를 메이븐 중앙 레포리토리를 통하여 배포하지 않는것은 여러가지 이유가 있을 수 있지만.. 메이븐 프로젝트를 구성하여 사용하는 경우에 일일이 아티팩트를 로컬 레포지토리에 인스톨하여 사용한다는것 자체가 귀찮고 개발자간 버전 불일치 문제가 있을 수 있습니다.

이때는 메이븐 중앙 레포지토리 외에 다른 레포지토리를 추가하여 간단하게 해결할 수 있습니다.

pom.xml에 다음과 같이 새로운 레포지토리를 하나 더 추가합니다.
<repository>
    <id>mesir-repo</id>
    <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
</repository>

그리고 다음과 같이 Oracle ojdbc14.jar 아티팩트를 위한 디펜던시를 설정합니다.
<dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc14</artifactId>
  <version>10.2.0.4.0</version>
</dependency>

자 어떠세요~ 쉽게 ojdbc14.jar를 사용하실 수 있으시죠~ 언릉 Oracle이 메이븐 중앙 저장소에 ojdbc14.jar의 아티팩트를 올려주었으면 좋겠습니다. ;-)

참고로 이 자료는 http://www.jroller.com/mert/entry/oracle_s_ojdbc14_jar_mesir 를 참고하였습니다.
저작자 표시 비영리
Trackback 0 And Comment 0

Trackback http://blog.java2game.com/trackback/331 관련글 쓰기

Google App Engine for Java 용 Maven 프로젝트 구축하기

|
최근 Google App Engine에 많은 관심을 가지고 이런 저런 테스트를 하고 있습니다.

Google App Engine for Java의 경우 이클립스 플러그인이 제공되기 때문에 쉽게 프로젝트를 생성하고 간편하게 테스트할 수 있습니다. GAE for Java용 이클립스 플러그인에 대한 자세한 정보는 http://code.google.com/appengine/docs/java/tools/eclipse.html 에서 확인할 수 있습니다.

프로젝트가 진행되면서 많은 라이브러리들이 필요할 경우에는 아시다시피 Maven을 사용하는 것이 효과적입니다. Maven은 여러모로 훌륭한 의존성 관리를 해주며, 이행종속관계에 따른 라이브러리 관리를 쉽게 해줍니다.

이러한 기능은 프로젝트 규모가 클수록, 어플리케이션이 복잡할수록 많은 효과를 발휘합니다. 이에 따라서 Maven을 사용할 수 있는 Google App Engine for Java 프로젝트를 구축하는 방법을 Step by Step으로 확인해 보겠습니다.


1. 이클립스에서 메이븐 프로젝트 생성
여러분의 이클립스에 이미 메이븐 플러그인이 설치되어 있다고 가정하겠습니다. 만약 아직 메이븐 플러그인이 설치되어 있지 않다면, Galileo 기준으로 Help >> Install New Software >> Add 에서 Location 정보에 http://m2eclipse.sonatype.org/update/ 를 넣은 후 설치하시기 바랍니다.

그러면 아래와 같이 Maven Project를 선택하여 새로운 메이븐 프로젝트를 만들 수 있습니다.


Use default Workspace location을 선택하시면, 현재 워크스페이스 디렉토리 아래에 메이븐 프로젝트가 생성됩니다. 만약 다른 위치에 메이븐 프로젝트를 생성하고 싶다면 Browse... 버튼을 클릭하셔서 위치를 변경하시면 됩니다.



2. Google App Engine for Java용 Archtype Catalog 추가
다음에는 Archtype 플러그인을 선택할 수 있는 화면이 나옵니다. 여기에 우리가 원하는 Google App Engine for Java 용 Archtype이 없으므로 Configure... 버튼을 클릭합니다.


그리면 다음과 같이 Archtype Catalog를 추가할 수 있는 화면이 나옵니다. Add Remove Catalog... 버튼을 클릭하신 후 Catalog File에 http://www.mvnsearch.org/maven2 를 추가한 후 간단한 설명을 Descrption에 넣습니다. 저의 경우 Maven Archtype for GAE/J 라고 넣었습니다.


자 이렇게 Archtype Catalog를 추가한 후에는 Catalog에 appengine-quickstart Archtype 이 나타납니다. 선택한 후 Next 버튼 누르세요~



3. 메이븐 프로젝트의 코디네이트(Coordinate) 입력

메이븐의 모든 아티팩트(Artiface)는 코디네이트를 가지고 있습니다. 메이븐을 잘 모르시는 분들을 위하여 조금 더 설명을 드리면, 메이븐으로 관리되는 모든 프로젝트는 Group Id, Artifact ID, Version, Type 등의 프로젝트를 유일하게 식별할 수 있는 값을 가지고 있으며, 이 값이 코디네이트라고 합니다.

자 저의 경우 최근 공개소프트웨어 공모전에서 Vision Software in Life 란 어플리케이션을 개발하고 있으므로, 아래와 같이 코디네이트를 정했습니다.

참고로 Properties에 appengine_home에는 미리 다운로드 받으신 Google App Engine for Java SDK가 위치한 경로를 넣어주시기 바랍니다. 만약 SDK를 다운로드 받지 않아셨다면 http://code.google.com/appengine/downloads.html에 가셔서 다운로드 받으시기 바랍니다.

자 Finish 버튼을 클릭하면 간단하게 메이븐을 활용한 Google App Engine for Java 프로젝트가 생성됩니다.



4. 패키징과 실행하기

Maven의 Archtype 플러그인이 훌륭하게 GAE/J 프로젝트를 생성해 주었네요 :-)


하지만, 에러가 하나 있군요~ 간단하게 Quick Fix 하실 수 있습니다.


그리고 Maven의 경우 J2SE-1.5 표준으로 Java SDK를 설정하기 때문에 현재 활용하고 계신 JDK로 Edit 버튼을 클릭하셔서 수정하실 수 있습니다. 필수는 아닙니다.



이 부분이 중요한데 Maven의 pom.xml만 있는게 아니고 앤트의 build.xml도 존재합니다.
Maven으로 Package하시고, Ant로 실행시키는 구조이기 때문입니다. 아까 입력한 appengine_home 프로퍼티는 sdk.dir의 location 값입니다. 만약 이 부분이 설정되어 있지 않다면, 간단하게 SDK의 경로를 입력하세요.


자 Package 해 볼까요 :-)


아마 Package 가 모두 성공하셨을 것입니다. Build도 간단하게 하실 수 있습니다. Ant Build... 선택합니다.


그리고 runserver를 선택하여 develpment server를 실행할 수 있도록 설정합니다.


그러면 다음과 같이 GAE/J가 실행된 내역을 확인할 수 있습니다. ;-)




5. Repository 추가하기

pom.xml에서 Repository를 하나 더 추가하기를 권장합니다. 바로 Google Maven Repository입니다. 필수는 아닙니다만, 나중에 Google 관련 Maven을 업데이트 하실 때 편할 것 같습니다.



자 이상으로 간략하게 Maven을 활용한 Google App Engine for Java 프로젝트를 생성하는 법에 관하여 살펴보았습니다. 많은 분들이 쉽게 Google App Engine for Java 를 활용하시는데 도움이 되었으면 좋겠습니다.

마지막으로 본 내용을 구성하면서 http://gae-j-maven.appspot.com/에 있는 내용을 많이 참고하였습니다.
감사합니다. ;-)
저작자 표시 비영리
Trackback 1 And Comment 2

Trackback http://blog.java2game.com/trackback/324 관련글 쓰기

  1. Subject GAE - google app engine + maven (앤트 비사용)

    Tracked from 目指せ!ITアーキテクト 2009/10/17 15:46 delete

    1. 구글앱엔진을 메이븐으로 빌드해보려고 검색중 다음을 발견 http://blog.java2game.com/trackback/324 2. 오라~ 이거 괜찮네 하고 직접해봄(이때까지 GAE를 써본적없음) 3. runserver까지 정상적으로 실행 - 로컬에서 확인!!! 4. 자 그럼 업로드 해볼까하고 ant task중 update를 실행 5. 실패!!!!! 아흑.. 역시 잘나가더라니..... 6. RTFM의 원칙 (Read the Fuck Manual..

  1. Seil 2009/09/09 17:21 address edit & del reply

    좋은 내용이네요... ^^;;
    음.그런데, maven plugin은 http://m2eclipse.sonatype.org/update/ 인것 같은데요.. 조금 착오가 있어신듯 합니다.

    • 장선진 jangsunjin 2009/09/09 17:46 address edit & del

      아네~ 그게 맞습니다. 제가 SVN 플러그인인 subclipse하고 했갈렸네요 ^^;;

      좋은 지적 감사합니다. 냉큼 고쳤습니다. ^^~

prev | 1 | next