본문 바로가기
IT/Java

[eclipse] springboot maven module project 구성하기

by 성준하이 2023. 5. 2.
반응형

eclipse 에서 springboot를 활용하여 maven module project를 구성하는 방법에 대해서 다뤄보려고 한다.

 

먼저 module project에 대한 내용은 아래 참고 포스팅을 참고 바란다.

 

이클립스에서 구현을 하기 위해선 먼저 

maven 프로젝트를 만들어야한다.

 

 

그렇게 만들고 나면 프로젝트 내에 src 폴더와 pom.xml 파일이 생기는데 부모 모듈에서는 딱히 관리할게 없고 아래 모듈 생성만이 목적이므로 src폴더는 삭제해주었다.

 

그리고 나서 프로젝트 우클릭 후 module project 새로 만들기를 하였다.

 

필자는 이미 client와 component라는 모듈프로젝트를 생성하였기에 이렇게 보이는것이고 따라한다면 이렇게 만들어질것이다.

 

만약 module project를 만드는데

 The parent project must have a packaging type of POM

이라는 에러가 나온다면 pom.xml 에서 

<packaging>pom</packaging>

이라고 속성을 추가하면 만들어준다.

 

어디까지나 부모 모듈은 자식을 안고만 있는 용도이고 자식프로젝트에서 jar파일이 만들어지는 프로젝트가 만들어지기 때문이다.

 

그리고 사진처럼 모듈 프로젝트 들이만들어지면 pom.xml 이 아래와 같이 설정이 되어야한다.

부모 project 에는 아래 문구가 추가 되어있다.

  <modules>
       <module>component</module>
       <module>client</module>
  </modules>
자식 project 에는 아래 처럼 생성이 된다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.test</groupId>
        <artifactId>multiModule</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>client</artifactId>
</project>

그리고 필자는 client 프로젝트에서 component 에 생성한 entity 혹은 dto를 사용 예정이므로 dependency를 따로 추가 하였다.

물론 여기에서 버전 관리는 필요하다.

  <dependencies>
        <dependency>
            <groupId>com.test</groupId>
            <artifactId>component</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

 

이렇게 까지 하면 1개의 부모 프로젝트에 client 와 component 에 대한 자식 프로젝트가 생성이 완료 되었다.

 

springboot를 사용하고자 한다면 부모 프로세스에서 각종 maven이나 dependency를 설정해주면 자식 프로세스에서도 parent를 부모 pom.xml을 바라보고 있기에 함께 적용이 가능하다.


참고 포스팅

https://thenicesj.tistory.com/551

 

module project란?

예를 들어 maven 을 사용중이라고 한다면, maven project를 통해서 프로젝트를 생성할것이고, 기본적으로 src와 pom.xml 을 통해서 프로젝트가 관리가 된다. 요즘처럼 MSA시대에 많은 프로젝트를 관리한

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

[error] HttpMessageNotReadableException  (16) 2023.05.05
[error]Failed to execute goal org.springframework.boot:spring-boot-maven-plugin  (36) 2023.05.03
module project란?  (30) 2023.05.01
try catch와 throws, throw의 차이  (19) 2023.04.30
String 기본 method  (26) 2023.04.29

댓글