개요
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
파일이 있습니다.
멀티모듈 프로젝트 생성
- 프로젝트 디렉토리를 생성하고 프로젝트 루트로 이동합니다.
- 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
디렉토리가 생성됩니다.
모듈 추가
- 새로운 모듈을 추가할 디렉토리를 생성합니다.
- 프로젝트 루트의
pom.xml
파일에 새로운 모듈을 추가합니다.
<modules>
<module>module-a</module>
<module>module-b</module>
<module>module-c</module>
</modules>
위 예시에서 module-c
를 추가하였습니다.
의존성 관리
각 모듈은 필요에 따라 의존성을 가질 수 있습니다. 의존성은 각 모듈의 pom.xml
파일에 선언됩니다. 예를 들어, module-a
가 module-b
에 의존한다면 module-a
의 pom.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의 강력한 기능을 활용하여 프로젝트를 보다 효율적으로 관리할 수 있습니다.