[소소한 테스트] Maven과 dependency

2013. 8. 21. 13:43CM/Maven

반응형

 

정리를 해야겠다는 생각을 하였다.

그냥 지나쳐버린 것들이 많이 있기 때문이다.

그냥 느낌 또는 대충 알고 있는 것들에 대한 불안감 또는 답답함을 해소하기 위해서..

소소한 테스트와 메카니즘을 알아가보자^-^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~

 

- 끝 -

 


 

 

 

 

반응형