예전에 ivy를 사용한 경험이 있는데 요새 뉴스거리에 가끔 maven이 올라 오길래 검색해보았다.
maven을 사용해 본 경험이 없어 비교하기가 그랬으나 누군가 경험적 비교를 해놔서 살펴보니..
난 ivy가 좋을 것 같다...
우스갯소리로 ivy는 dependency 추가가 한줄인데 maven은 5줄이상이다... 여기에서 부터 호불호가 갈렸다;;
경험을 바탕으로 간단히.. 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 이야기>
'백엔드' 카테고리의 다른 글
Maven - cannot find symbol symbol (0) | 2017.12.18 |
---|---|
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". (0) | 2017.11.20 |
Java File copy with append if exits file (0) | 2012.11.14 |
EclipseLink 2.3 update URL (0) | 2011.09.09 |
[펌] 프레임워크에 대한 불만을 정리한 글. (0) | 2011.09.02 |