Page History
...
최근 모던 빌드툴에 비해 메이븐은 설정이 복잡하고 어렵습니다. 그래서 스프링을 웹 프레임웍으로 선택하였다고하면프레임워크로 선택을 하였으면,
스프링을 사용하는 요소만큼은 단순하게 의존성을 셋팅할 필요가 단순해질필요가 있습니다.
원문문서 : https://spring.io/guides/gs/multi-module/
의존성 단순화:
Spring Boot INITIALIZER 을 이용한 Spring 의존요소 단순화
...
- 모든 프로젝트가 공통으로 참조하는것 ( 오픈소스 공통 라이브러리)
- 특정 프로젝트만 참조하는것 ( 특정 로컬 참조)
- 그룹 프로젝트가 공통으로 참조하는것 ( 내부공통 라이브러리)
BadGood | |
---|---|
의존성 관계가 스파게티가 되는 일반적인 예입니다. | |
Good Case | |
여기서 의존성 단순화 목표는 , 우리가 사용할 스프링요소에대해서 크게 신경쓰지 않는 것입니다.
...
- 자신의 부모를 (parent)를 지정합니다. 그룹은 부모에서 정해졌기때문에 지정할 필요없습니다.
- 부모에서 어떠한 버젼의 요소를 사용할것인가 이미 정리가 되었기때문에 , 추가 사용모듈에대해 버젼지정을 하지 않습니다.
- 하위 모듈에서 만약 버젼을 한번 지정하기 시작하면, 다른 하위모듈에서도 지정하기때문에 서로 다른 버젼이되어 작동될수 있습니다.
Note |
---|
복잡하게 얽혀있는 오픈소스 디펜던시를 메이븐에 셋팅하려고하니 노하우와 경험이 필요해 보입니다. 시간이되면 Gradle과 양방향 호환되는 방향으로 셋팅하고 싶지만 ( 기존 대부분의 인프라가 메이븐으로 설정되어 있음 ) 메이븐에서 계속 깔금한 구조를 개선및 시도중에 있습니다. |