공통 모듈 형상 참고 사이트

https://github.com/DISID/disid-proofs/tree/master/spring-boot-multimodule




부모가 되는 spring-boot-multimodule 프로젝트의 pom.xml 내부를 확인 하면 모듈 들이 존재 한다.


    <modules>

      <module>model</module>

      <module>repository</module>

      <module>service-api</module>

      <module>service-impl</module>

      <module>application</module>

    </modules>


해당 모듈들은 각 하위 프로젝트의 이름들이 명시 되어 있어야 한다.


<packaging>pom</packaging>

또한 packaging을 jar가 아닌 pom으로 선언 되어있어야 한다.






하위 프로젝트 application의 pom을 확인하면

    <parent>

        <groupId>sample.multimodule</groupId>

        <artifactId>sample.multimodule</artifactId>

        <version>0.0.1-SNAPSHOT</version>

    </parent>


<parent> 태그 안에 부모가 되는 프로젝트의 groupId, artifactId, version을 선언 해야 한다.

자기 자신은의

<packaging>war</packaging>

packaging은 배포 파일 >> war, jar로 선언해야 한다.


저의 경우 공통 컨트롤러 프로젝트 하나에 여러개의 서비스 프로젝트를 모듈화 하였는데 만약 core 프로젝트가 필요하다면

      <!-- Project modules -->

      <dependency>

        <groupId>sample.multimodule</groupId>

        <artifactId>sample.multimodule.service.impl</artifactId>

        <version>${project.version}</version>

      </dependency>

core 프로젝트를 dependency하여 주면 된다.


최종적으로 선언하고 maven 빌드 해주시면 각 프로젝트끼리 배포 된 jar, war파일을 바라보며 서비스가 실행 된다.


pom.xml에서의 다른 패키지들과 플러그인들을 선언 할 경우 가장 최상위 부모 pom에 선언하면 다른 프로젝트는 부모의 라이브러리를 참조 한다.













+ Recent posts