Maven의 핵심개발자들이 만든 회사인 Sonatype의 m2eclipse에 이은 두번째 역작 Nexus 1.0이 릴리즈 됐다.

Maven을 성공적으로 사용하기 위해서 개인 또는 기업에게 꼭 필요한 것 두가지를 말하라면 자체적인 Parent/Abstract/Base POM을 만들어서 사용하라는 것과 기업 또는 팀에서 사용할 전용 Maven 리포지토리를 이용하는 것이라고 대답하겠다.

이 중에서 내부 Maven 리포지토리의 필요성에 대해서는 박재성님도 강조한 바 있고, Atlassian의 개발자 블로그에 실린 Maven Infrastructure에 관한 글에도 잘 나타나 있다.

 

Maven의 최대 약점은 부실한 Central Repository 관리에 있다. Maven2.0 초기부터 열심히 적용해서 AppFuse를 개발해온 Matt Raible이 제발 clean up좀 해줬으면 좋겠다고 블로그에서 여러번 호소한 적이 있을 정도로 Central의 악명은 높다. 관리체계나 검증방법, 등록과정이 어떻게 되는지는 잘 모르겠지만 최신 라이브러리가 Central에 등록되는데는 상당한 시간이 걸린다. 짜증날 정도로 허접하게 설정된 POM과 아직도 잘 지켜지지 않는 package naming rule도 마찬가지고. 그래서 많은 오픈소스 프로젝트나 기업들이 Central과는 별도로 자체적인 Maven 리포지토리를 만들어서 공개 또는 내부적으로 활용하고 있다.

잘 알려진 Central/Codehaus 이외의 공개 리포지토리로는 Atlassian, JBoss, SpringSource에서 공개운영하는 것들이 있다. 이런 리포지토지는 많이 사용되는 제품의 경우 빠르게 업데이트가 되고, 유용한 자체 개발 플러그인들이 등록되어있기 때문에 본격적으로 오픈소스 제품을 사용하는 프로젝트에 Maven을 적용할 경우 이용하지 않을 수 없다.

하지만 개발자 각자 또는 프로젝트 마다 이런 저런 리포지토리들의 설정을 복잡하게 해두고 관리하는 것은 불편한 일이다. 내 자리에서 잘 되는 빌드가 CI서버로 간다거나 다른 개발자 자리에서는 안되는 경우 리포지토리의 설정이 서로 다르기 때문일 가능성이 높다.

그래서 기업이나 프로젝트 팀의 전용 서버를 외부 리포지토리의 Proxy 개념으로 활용하면 매우 편리하다. Nexus와 같은 리포지토리툴은 여러개의 외부 리포지토리를 Proxy개념으로 연결해서 내부 개발자들에게는 Virtual한 하나의 release, snapshot URL 형태로 제공한다. 따라서 개발자들은 내부 리포지토리 설정 하나만으로도 충분하다. 필요한 추가 외부 리포지토리가 있으면 proxy 등록만 해주면 된다.

Proxy의 적용이 주는 또 한가지 장점은 다운로드 속도가 빠르다는 것이다. Maven의 transitive dependency는 깔끔하게 정의되지 않은 의존관계를 가진 POM을 만나게 되면 정체를 알 수 없는 엄청난 다운로드(그것도 같은 라이브러리의 여러개의 버전이 한꺼번에)가 일어난다. Central 서버가 그다지 빠르지 않을 뿐더러 Maven의 다운로딩 처리도 매우 느린 것으로 소문나 있다. 2.1 또는 3.0에서 개선될 것이라고 하지만 언제 나올지 기약이 없다. 그런 면에서 로컬의 proxy는 프록시가 원래 그렇듯이 아주 빠르게 라이브러리를 다운로딩 해준다. 한가지 문제는 snapshot의 업데이트인데 그건 적절한 서버 설정으로 해결봐야 할 듯.

 

내부 리포지토리의 또 한가지 필요성은 공개된 리포지토리에는 올라갈 수 없는 또는 올라가지 않은 라이브러리를 이용하고 싶은 경우이다. 라이센스 문제로 공개사이트에서 배포가 불가능한 SUN에서 제공하는 자바스펙 구현들(물론 별도 구현한 대체파일을 찾을 수는 있지만 번거롭다)을 포함해서 상용으로 구매한 라이브러리나 또는 내부적으로 개발해서 외부에 공개할 수 없는 것들은 전용 리포지토리에 직접 업로드해서 내부 개발자들에게만 공개한 형태로 사용되어질 수 있다. 내부 POM도 마찬가지로 서버에 등록이 되어있어야 할테고.

 

아무튼 이런 전용 Maven 리포지토리를 손쉽게 만들어 사용할 수 있도록 지원하는 여러 제품들이 있다. 한동안 Artifactory를 사용해왔는데 큰 불편 없었지만 종종 드러나는 작은 버그들과 서버의 불안정성 때문에 다른 대안이 없나 찾다가 Nexus를 발견했다. Maven 개발팀에 대한 불신이 큰 탓에 그쪽 동네서 만든 제품은 손도 대지 말자라고 생각하고 있었는데, Sonatype이라는 회사를 만든 이후로는 여러가지 좋은 제품과 문서들을 내놓고 있어서 인식이 180도 바뀌었다. The Definite Guide라는 문서도 지금까지 공개된 어떤 Maven 관련 책과 문서보다 뛰어난 Maven 가이드북이다. Eclipse 플러그인인 m2eclipse 역시 기대했던 이상의 편리한 기능과 안정성을 가지고 발전하고 있어서 Maven 적용 프로젝트의 필수 툴로 새롭게 떠오르고 있다. 또 하나 주목할 만한 것이 바로 Nexus이다.

Nexus는 Artifactory랑 비교해서 보면 기본 기능과 개념은 거의 비슷하다. 하지만 기능이 매우 뛰어나고 안정적일 뿐더러 관리자 UI 또한 사용하기 편리하게 ExtJs를 이용해서 만들어져있다.

또 하나의 장점은 인덱스의 활용이다. 리모트 리포지토리의 인덱스를 이용해서 필요한 라이브러리를 빠르게 검색할 수 있다. M2eclipse가 이 인덱스를 활용하기 때문에 Nexus의 도움을 받아서 인덱스를 업데이트 해가면서 필요한 라이브러리를 프로젝트에 쉽게 추가하는데도 적용할 수가 있다.

 

그 밖에 서버관리를 위한 여러가지 편리한 기능을 제공한다. 자세한 활용법은 The Definitive Guide에 나온 Nexus 챕터를 잘 읽어보면 도움이 될 것이다.

Related posts:

  1. Maven 3.0과 버전 포맷 문제
  2. Maven 다중 리포지토리와 버전 범위를 사용할 때의 주의점
  3. Maven의 새로운 가이드북 – Maven: The Definitive Guide
  4. Maven 재도전기 (1)
  5. Spring 3.0 (34) R-941 스프링의 Maven 지원정책은?
  6. Maven 의존관계 수렁에 빠지다
  7. Maven: The Definitive Guide 사라지다
  8. Maven settings.xml의 비밀번호 암호화
  9. Maven archetype 설정파일 자동생성기 – ArchetypeXmlWriter
  10. Ruby on Maven
  11. Maven POM에 attribute 사용하기 (1)
  12. Maven POM에 attribute 사용하기 (2)
  13. Project Irene 시작하다
  14. Maven과 OSGi(Spring)의 버전포맷 비호환 문제
  15. Maven의 version range를 사용할 때 주의할 점

Facebook comments:

to “Nexus Maven Repository 1.0 출시”

  1. Whoa a good deal of helpful data! vardenafil

  2. Excellent postings. Cheers! advair inhaler

  3. Lovely information, Many thanks. hydrochlorothiazide 12.5 mg

  4. Seriously quite a lot of helpful advice. baclofen 10mg

  5. Terrific knowledge. Thanks a lot. retin-a cream

  6. Regards, A lot of postings.
    domperidone

  7. Amazing a lot of superb tips! levitra 20mg zanaflex medication

  8. The info talked about within the write-up are several of the most beneficial available

  9. Thanks. Wonderful information! generic cialis

  10. Very good facts, Many thanks! finasterid inderal 10 mg propranolol 40mg advair hfa

  11. Excellent postings. Cheers! augmentin antibiotic inderal la retin-a

  12. Major thanks for this useful article. Really looking forward to read more from you. Could you please read my blog?. Have a good day.

  13. Incredible many of amazing knowledge. zanaflex medication

  14. Incredible a good deal of valuable knowledge. amoxicillin trihydrate

  15. Thanks a lot, I like this. amoxil

  16. Thank you, I appreciate it! flomax for women

  17. The information talked about inside the post are a number of the ideal obtainable

  18. The details mentioned inside the write-up are some of the most beneficial obtainable

  19. please take a look at the web pages we comply with, like this one, because it represents our picks from the web

  20. Wow tons of fantastic information. cialis online

  21. Hi, I do think this is an excellent web site. I stumbledupon it ;) I am going to revisit yet again since i have book marked it. Money and freedom is the greatest way to change, may you be rich and continue to guide others.

  22. Thanks a lot! Excellent stuff! levitra 20 mg

  23. that may be the end of this write-up. Right here youll come across some web pages that we consider youll value, just click the links over

  24. Wow all kinds of terrific data! amoxicillin 500mg

  25. Amazing plenty of fantastic knowledge! generic advair

  26. Wonderful facts, Appreciate it! retin a propanol

  27. The information talked about in the report are several of the most beneficial accessible

  28. Many thanks. I appreciate this. phenergan generic metformine

  29. the time to read or pay a visit to the material or sites we have linked to below the

  30. Kudos. Great stuff! trimox

  31. Nicely put, With thanks. generic advair diskus

  32. Here is a good Blog You might Locate Interesting that we Encourage You

  33. You suggested that effectively! lisinopril medication

  34. very couple of websites that transpire to become comprehensive beneath, from our point of view are undoubtedly well really worth checking out

  35. Nicely put. Kudos! celebrex generic

  36. Sites of interest we’ve a link to

  37. You expressed that exceptionally well. propecia for hair loss propranolol bnf

  38. Nicely put. Thank you! baclofen 10 mg tablets

  39. Seriously a good deal of amazing knowledge. baclofen 10mg tablets

  40. Regards, A good amount of stuff.
    zithromax antibiotic

  41. You actually said it effectively! domperidone

  42. we came across a cool internet site that you could possibly love. Take a appear in case you want

  43. You have made your position extremely well.! celebrex medication

  44. please stop by the web pages we stick to, which includes this 1, as it represents our picks in the web

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha