Maven으로 Dependency 추가했을 때 소스 수정하려면..

1,053 views
Skip to first unread message

20세기꼬맹이

unread,
Aug 27, 2012, 8:07:04 AM8/27/12
to ks...@googlegroups.com
Maven으로 Dependency를 추가해서 라이브러리를 이용하고 있습니다.

이렇게 추가된 라이브러리의 소스를 좀 변경해야 할 일이 생겼는데요..

직접 jar를 다운 받아서 임포트 시켜서 소스 수정 하는 방법말고...

메이븐 설정에서 라이브러리 받아서 자동으로 소스를 임포트 하도록 할 수 있는 방법이 있을까요?





선영욱

unread,
Aug 27, 2012, 6:43:27 PM8/27/12
to ks...@googlegroups.com
 <dependency>
  <groupId>com.xxxx.xxxx</groupId>
  <artifactId>xxxx-api</artifactId>
  <version>1.6</version>
  <scope>system</scope>
  <systemPath>${basedir}/src/main/resources/xxxx-library/xxx-api-1.6.jar</systemPath>
 </dependency>
 
이런식으로 등록하시면 어떨까요?
 
from KSUG Facebook

최영목

unread,
Aug 27, 2012, 7:49:18 PM8/27/12
to ks...@googlegroups.com
개인적으로 system scope를 사용하는 것보다는 변경할 라이브러리 소스를 별도로 형상관리하고 jar로 묶은 후 nexus와 같은 maven repository에 배포합니다.  ^^

2012년 8월 28일 오전 7:43, 선영욱 <twinmo...@gmail.com>님의 말:

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.



--
- 올바른 성장과 따뜻한 나눔
- 넥스트리소프트(주) 최영목


Sungchul Park

unread,
Aug 27, 2012, 10:26:29 PM8/27/12
to ks...@googlegroups.com
회사에서 공식적으로 운영하는 nexus가 있고 해당 라이브러리가 장기적으로 여러 프로젝트에서 공유될 만 한 수정본이라면 nexus가 좋지만 특정 프로젝트에서만 사용되거나 nexus가 장기간 운영된다는 보장이 없다면 오히려 빌드가 깨지는 문제가 생깁니다.
그래서 특정 프로젝트 용으로 nexus를 운영하는 건 추천하지 않습니다. 특히 SI에서는...
system 스코프와 nexus 운영을 적절하게 비교해서 판단해 보시기 바랍니다.

12. 8. 28. 오전 8:49, 최영목 쓴 글:
개인적으로 system scope를 사용하는 것보다는 변경할 라이브러리 소스를 별도로 형상관리하고 jar로 묶은 후 nexus와 같은 maven repository에 배포합니다.  ^^

2012년 8월 28일 오전 7:43, 선영욱 <twinmo...@gmail.com>님 의 말:
 <dependency>
  <groupId>com.xxxx.xxxx</groupId>
  <artifactId>xxxx-api</artifactId>
  <version>1.6</version>
  <scope>system</scope>
  <systemPath>${basedir}/src/main/resources/xxxx-library/xxx-api-1.6.jar</systemPath>
 </dependency>
 
이런식으로 등록하시면 어떨까요?
 
from KSUG Facebook
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.

그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.



--
- 올바른 성장과 따뜻한 나눔
- 넥스트리소프트(주) 최영목


최영목

unread,
Aug 27, 2012, 10:35:38 PM8/27/12
to ks...@googlegroups.com
규모의 차이도 있지 않을까 합니다.

규모가 크고, 전사차원에서 Nexus와 같은 Maven Repository를 운영하는 경우에는 박성철님 말씀대로 운영해야 할 것 같습니다.

하지만 이 경우에도 선택의 여지는 남아 있습니다. 라이브러리 소스를 변경한 경우 해당 라이브러리가 독립적으로 사용된다면(유틸성 라이브러리이고, 다른 라이브러리에서 참조하지 않는다는 조건)이라면 groupId와 artifactId, version 등을 수정하여 배포할 수 있습니다. 하지만 다른 라이브러리에서 참조하는 경우라면 제가 말한 방법은 사용이 불가능 합니다.

다시 돌아와서 규모가 작은 경우에 그리고 전사적으로 정책이 존재하지 않고 해당 업체에서 각 프로젝트별 형상관리 및 개발지원환경을 완전히 독립적으로 가져가는 경우에는 프로젝트별로 Nexus를 운영하는 것도 괜찮은 방법입니다. ^^

이에 대한 결정은 해당 사이트의 전사차원에서 형상관리 정책 등과도 연관이 있는 부분이라 case by case로 적용하심이 괜찮을 것 같습니다. ^^


2012년 8월 28일 오전 11:26, Sungchul Park <gyu...@gmail.com>님의 말:

심상호

unread,
Aug 28, 2012, 12:10:02 AM8/28/12
to ks...@googlegroups.com
수정이 크지 않다면 수정된 Class를 source code에 추가하시면 library(jar)의 원본 Class보다 먼저 loading 됩니다.
(일부 WAS에 따라 library order를 지정할 수 있습니다.)

wonhee

unread,
Sep 14, 2012, 3:00:15 PM9/14/12
to ks...@googlegroups.com
수정하기 위한 소스코드를 가져오는 부분을 언급하신거 같은데  이클립스 쓰는거라면  maven eclipse plugin에 downloadSources 인가 하는 부분 고쳐서 IDE가 바로 땡겨오도록 할 수는 있습니다.
다만 그걸 또 어디선거 써야 할테니 로컬 repo에 설치는 maven 커맨드로 하더라도 나중을 위해서라면 내부 REPO 같은걸 하나 설치해서 운영해야겠네요.

2012년 8월 27일 월요일 오전 5시 7분 4초 UTC-7, 20세기꼬맹이 님의 말:
Reply all
Reply to author
Forward
0 new messages