경험을 바탕으로 간단히.. maven(maven2) vs ivy 장단점 비교를 해보겠습니다.

-  의존성 다운로드
1) ivy : 선택에 의해서 다운로드 가능. 해당 jar외엔 아무것도 받지 않겠다라고 쓸 수 있음. 명시적인 lib 관리 가능
2) maven : 불필요한 jar도 다운받을 수 있습니다. 쓰지 않더라도 선언때문에 다운 받을 수 있고, 상황에 따라서는 exclude 해줘야 함. 
(운영상..  maven을 못 쓴 이유가 바로 이런 불편함이었습니다. 쉽게 운영을 위해서는 명시적인 lib 외엔 다른 것을 쓰지 않도록 하는 것이 더 편리하고 명확합니다. )

- 라이브러리 경합
1) ivy : 유연성 제공, 같은 라이브러리, 버젼일 때, conflict manager 사용가능
2) maven : 같은 라이브러리라도 다른 버젼이면 맨 처음 선언된 artifact에 맞춰 다운로드 됩니다. maven plugin에서는 이 부분이 달라진다.. 결국 버젼 관계를 설정할 방법이 없습니다.

- 의존성 lib 기술 방법
1) ivy : property 이용. 
2) maven : element 단위.

- 이클립스 상
1) ivy : jar만 다운받으면, ant 상에서 빌드 가능, 플러그인 설치 필요 없음
2) maven : m2 플러그인 설치를 통해서 빌드 해야 함

- 장점
1) ivy : ant와 동시에 쓰면서 세밀한 작업이 가능함. 디렉토리 위치를 편하게 관리. 복잡해질 수 있는 소지. ant 의 condition 같은 구린 것이 if / else로도 쓸 수 있도록 지원.
2) maven : 플러그인을 편하게 쓸 수 있음. 간단한 구조에 좋음.

- ivy의 단점 : 파일 이름에 명시적인 패턴을 요구 합니다.


* ant + ivy는 spring 3 에서 사용하고 있습니다. 그 외에서 reference하는 곳는 많지는 않은 듯 합니다.


* 경험상..
maven은 작은 모듈에 적합
ant+ivy는 배포서버나, 세밀함이 필요한 곳에 적합


<볼만한 ivy 이야기>

http://toby.epril.com/?p=557   

http://www.ibm.com/developerworks/kr/library/j-ap05068/index.html#listing1

http://objectopia.com/2009/06/21/a-robust-build-for-a-many-component-platform-using-aspects-of-maven-ant-and-ivy-part-1/

http://stackoverflow.com/questions/194125/is-ant-still-the-best-choice-for-a-java-build-tool



'etc tools' 카테고리의 다른 글

[ANT] fixcrlf  (0) 2010.07.29
maven의 exclusion 고민  (0) 2010.07.21
Load Runner 대체 툴 Grinder  (1) 2010.02.01
Ant 조건에 따라 실행하기  (0) 2009.07.29
라이브온에어  (0) 2009.04.07
Posted by '김용환'
,