[java] Maven을 사용하여 멀티모듈 프로젝트 만들기

개요

Maven은 Java 기반 프로젝트의 의존성 관리, 빌드, 배포를 위한 강력한 도구입니다. Maven을 사용하면 여러 모듈로 구성된 프로젝트를 관리할 수 있습니다. 이 글에서는 Maven을 사용하여 멀티모듈 프로젝트를 만드는 방법을 알아보겠습니다.

전제 조건

이 문서에서는 Maven이 설치되어 있다고 가정합니다. Maven을 설치하지 않았다면 Maven 공식 웹사이트에서 다운로드하여 설치하세요.

프로젝트 구조

멀티모듈 프로젝트는 여러 개의 모듈로 구성됩니다. 각 모듈은 독립적인 기능을 제공하며, 필요에 따라 다른 모듈에 의존성을 가질 수 있습니다. 일반적으로 Maven 프로젝트의 구조는 다음과 같습니다:

my-project
├── module-a
│   ├── src
│   └── pom.xml
├── module-b
│   ├── src
│   └── pom.xml
└── pom.xml

프로젝트의 루트에는 pom.xml 파일이 있으며 각 모듈에도 pom.xml 파일이 있습니다.

멀티모듈 프로젝트 생성

  1. 프로젝트 디렉토리를 생성하고 프로젝트 루트로 이동합니다.
  2. Maven 명령을 사용하여 멀티모듈 프로젝트를 생성합니다.
mvn archetype:generate -DgroupId=com.example.myproject -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

위 명령을 실행하면 기본적인 멀티모듈 프로젝트가 생성됩니다. my-project 디렉토리에 루트 pom.xml 파일과 module-a, module-b 디렉토리가 생성됩니다.

모듈 추가

  1. 새로운 모듈을 추가할 디렉토리를 생성합니다.
  2. 프로젝트 루트의 pom.xml 파일에 새로운 모듈을 추가합니다.
<modules>
    <module>module-a</module>
    <module>module-b</module>
    <module>module-c</module>
</modules>

위 예시에서 module-c를 추가하였습니다.

의존성 관리

각 모듈은 필요에 따라 의존성을 가질 수 있습니다. 의존성은 각 모듈의 pom.xml 파일에 선언됩니다. 예를 들어, module-amodule-b에 의존한다면 module-apom.xml 파일에 다음과 같이 의존성을 추가할 수 있습니다.

<dependencies>
    <dependency>
        <groupId>com.example.myproject</groupId>
        <artifactId>module-b</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

빌드 및 실행

멀티모듈 프로젝트를 빌드하려면 프로젝트 루트에서 다음 명령을 실행합니다.

mvn clean install

위 명령을 실행하면 각 모듈이 순서대로 빌드되어 결과물이 생성됩니다.

각 모듈은 개별적으로 실행할 수도 있습니다. 예를 들어, module-a를 실행하려면 module-a 디렉토리로 이동하여 다음 명령을 실행합니다.

mvn exec:java -Dexec.mainClass="com.example.myproject.modulea.Main"

결론

이제 Maven을 사용하여 멀티모듈 프로젝트를 만들고 관리하는 방법을 알게 되었습니다. Maven의 강력한 기능을 활용하여 프로젝트를 보다 효율적으로 관리할 수 있습니다.