일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스프링부트테스트
- ssl이란?
- easy
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
- OpenFeign
- mysql executequery error
- error
- java 버전 변경
- ssl프로토콜확인
- aws
- java 11
- Java 1.8
- yum install java
- java version
- parse
- xcrun: error: invalid active developer path
- AWS CLI
- java 여러개 버전
- No tests found for given includes
- springboottest
- springboot
- java
- LeetCode
- log error
- statement.executequery() cannot issue statements that do not produce result sets.
- mac os git error
- Medium
- tls프로토콜확인
- JUnit
- java 1.8 11
- Today
- Total
쩨이엠 개발 블로그
멀티폼 / 멀티프로젝트 만들기 (multi pom project) 본문
프로젝트를 만들다 보니 같은 프로세스가 여기저기 흩어져 있어 멀티프로젝트 하나로 묶기로 했다
멀티프로젝트 혹은 멀티폼 형식 (multi project / multi pom)
다 되어있는 프로세스를 옮기는 거라 그래도 어렵진 않았지만 정리해두기
내 구조는
parent(root)
- child1
- src
- pom.xml
- child2
- src
- pom.xml
- child3
- src
- pom.xml
- pom.xml
형식이었다
parent과 child의 pom.xml 차이점 중 제일 중요한점은 packaging attribute이다
parent는 pom, child는 jar로 되어있어야한다
parent pom.xml
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>child1</module>
<module>child2</module>
<module>child3</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.test</groupId>
<artifactId>parent</artifactId>
<version>1.0.0.SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
.
.
.
dependencies는 묶어서 내보내도 되지만 나는 각자 따로 돌아가는 프로세스를 묶은거라 child의 pom에 그대로 놔뒀다
(유지보수를 위해서 라는 핑계로)
여기서 modules에 child의 artifactId를 적으면 parent는 완료
child
child는 parent값이 parent를 따라간다
그리고 packaging을 jar로 변경한다
<parent>
<artifactId>parent</artifactId>
<groupId>com.test</groupId>
<version>1.0.0.SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>child1</artifactId>
maven build를 실행한다
working directory를 parent에 놓고 clean package
Command line에 maven.test.skip을 true로 놓으면 테스트를 스킵할 수 있다
pom과 jar로 설정되어있다
열심히 빌드를 해서 완료처리를 한다
각자의 target에 가보면 jar가 생성된 것을 확인할 수 있다.
이때 모듈 빌드 순서는 parent의 빌드 순서대로 child1 2 3 4가 되어야 하지만 이 경우는 child2를 child1이 참조하는 프로젝트라 빌드되는 순서가 바뀌었다
멀티프로젝트에서 한 프로젝트를 다른 프로젝트에서 참조하는 경우는 다음 블로그에서 설명하겠다
'개발 > intelliJ' 카테고리의 다른 글
맥 OS 업그레이드 후 에러 해결 방법 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) (0) | 2024.06.18 |
---|---|
messages.properties 인코딩 한글 (0) | 2023.05.31 |
error : invalid source release: 17 (0) | 2023.04.03 |
[ Spring Boot Test ] No tests found for given includes (0) | 2021.01.06 |
[ intelliJ] database 설정하기 (0) | 2020.10.23 |