Maven을 거의 초딩 수준으로 사용하고 있는데도 벌써부터 장점이 나타나고 있습니다.
사용자 삽입 이미지위에 보이는 Jar 파일들은 매우 간단한 Spring 기반 ActiveMQ JMS 애플리케이션을 돌려보기 위해 필요한 의존성들입니다.

제가 이 프로젝트를 구성할 때 신경 쓴 것은 그림에 표시되어있는 단 4개의 파일에 대한 의존성입니다. 그 파일들이 어떤 프로젝트에 종속적인지(추이적 종송성)조차 다 알아내기란 상당히 귀찮은 일이며 짜증나는 일일 수 밖에 없습니다.(물론 spring이 commons-logging을 사용한다는 것은 방금 언급한 짜증나는 경험을 통해 머리속에 박혀서 알고있지만 말이죠.)

단 네 개의 의존성만 알면, 나머진 Maven이 알아서 가져옵니다. 의존성을 추가하는 일도 어렵지 않습니다. Jar 파일을 가지고 있는 프로젝트를 일일히 다운로드 받고 압축을 풀고 라이브러리 찾고(보통은 lib 폴더, 스프링은 dist 폴더) 복사해서 붙여넣으면 되겠지만.. Maven을 사용할 때는 http://mvnrepository.com/ 이 곳에서 원하는 프로젝트를 검색한 다음 <dependency> 엘리먼트를 찾아낸 다음 복사해서 POM에 붙여넣으면 됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>ActiveMQTest</groupId>
    <artifactId>ActiveMQTest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <description></description>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>4.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>2.5</version>
        </dependency>
    </dependencies>
</project>

공부하는데 시간은 좀 오래 걸리고 있지만, 벌써부터 수확이 생기다니 기쁩니다. 공부할 수록 더 많은 수확이 있으리라 예상해봅니다.