정리를 해야겠다는 생각을 하였다.
그냥 지나쳐버린 것들이 많이 있기 때문이다.
그냥 느낌 또는 대충 알고 있는 것들에 대한 불안감 또는 답답함을 해소하기 위해서..
소소한 테스트와 메카니즘을 알아가보자^-^good~
2013/08/20 - [CM/Maven] - pom.xml 을 알아보자!
pom.xml 에서 <dependencies> 엘리먼트에 spring 관련 내용을 넣어보자.
spring-core, spring-aop, spring-webmvc-protlet 이렇게 3가지!!
당연히 jar파일이 3개가 나올 것이라 생각 할 수 있다.
<dependencies>
<!-- ======================== -->
<!-- Spring Framework -->
<!-- ======================== -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<version>${org.springframework.version}</version>
</dependency>
하지만!! 3개가 아닌 다수의 jar파일들이 Maven Dependencies에 놓이게 된다.
spring-core-3.1.1.RELEASE.jar
spring-asm-3.1.1.RELEASE.jar
commons-logging-1.1.1.jar
spring-aop-3.1.1.RELEASE.jar
aopalliance-1.0.jar
spring-beans-3.1.1.RELEASE.jar
spring-webmvc-portlet-3.1.1.RELEASE.jar
spring-context-3.1.1.RELEASE.jar
spring-expression-3.1.1.RELEASE.jar
spring-web-3.1.1.RELEASE.jar
spring-webmvc-3.1.1.RELEASE.jar
spring-context-support-3.1.1.RELEASE.jar
그 이유인 즉, dependency 때문이다!..
Dependency Hierarchy를 보면 쉽게 알 수 가 있다.
spring-core는 spring-asm, commons-logging
spring-aop는 aopalliance, spring-asm, spring-beans, spring-core
spring-webmvc-portlet는 여러가지..--;;
anyways..소소한 테스트의 결과는 3가지가 아닌 dependency에 걸려있는 것들을 모두 가져온다는 것이다.
그렇다면, 분명히 중복도 있었다. 예를 들면 spring-core와 spring-aop에서 spring-asm이 중복 되어지지만 jar파일은 spring-asm-3.1.1.RELEASE.jar 하나인 것이다.
그리고 여기에서 또 생각 해 볼 수 있는 것은 dependency에 걸려있는 것이 있을 수 있고, 새롭게 버전이 높은 것을 녀석을 사용하게 될 경우도 있을 것이다.
이런 경우는 어떻게 해야 할까?
앞으로 정리하면서 알아가보도록 하자^-^good~
- 끝 -