본문 바로가기
CM/Maven

[소소한 테스트] Maven과 dependency

by 태하팍 2013. 8. 21.
반응형

 

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

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

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

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

 

- 끝 -

 


 

 

 

 

반응형