개발을 하다보면 resource를 분리해서 사용할 경우가 필요합니다.
예를들어 로컬, 개발, 운영별로 resource를 분리시킬수도 있고
DB별로 oracle, mysql에 따라 쿼리문이 다르기때문에 resoure를 분리해서 사용할 수도 있습니다.
이번 포스팅에서는 maven빌드시 profile을 지정해서 패키징을하는 방법입니다.
저는 maria디비와 tibero디비를 같이 사용하는프로젝트가 있어서
그 프로젝트를 바탕으로 작성했습니다.
우선 아래 이미지처럼 2개의 resource폴더를 생성해줍니다
그런다음 pom.xml에 profile과 resources의 directory를 추가해 줍니다.
우선 <build> 블럭 위에 프로필즈를 추가하는데 id는 war파일을 생성할때 프로필에 입력할 id값이고
env는 resource폴더명에 들어갈 값입니다.
<profiles>
<profile>
<id>maria</id>
<properties>
<env>maria</env>
</properties>
</profile>
<profile>
<id>tibero</id>
<properties>
<env>tibero</env>
</properties>
</profile>
</profiles>
profiles를 추가했으면 다음에는 <build>블록 안에 가장위쪽에 resource를 추가해줍니다.
<build>
<resources>
<resource>
<directory>src/main/resources-${env}</directory>
</resource>
</resources>
...
</build>
이렇게 작성을 해주면 directory의 ${env}에 위에 선언한 값이 들어가서
profile에따라 resource-tibero 또는 resource-maria를 사용하게 됩니다.
intellij경우는 Tool Windows > maven 창이 있어서 창을 열면 아래 이미지처럼 profile을 따로 입력안하고 선택해서
패키징을 할수 있습니다.
이클립스경우는 maven build에 들어가면 profile을 입력하는 부분이 있는거로 알고있습니다.
하지만 프로필을 바꾸면서 패키징을 해도 전에 사용하던 프로필로 패키징이 될때가 있어서
저는 패키징하전에 클린을 꼭 해줍니다.
이상 maven빌드시 resource를 분리해서 사용하는 방법이였습니다.
'Spring' 카테고리의 다른 글
[Spring - ExceptionHandler] 예외 처리하기 (0) | 2023.04.07 |
---|---|
스프링 시큐리티(Spring Security)란 무엇인가? (0) | 2023.03.05 |
[Spring - restApi] ApiResponse 구성하기 (0) | 2022.02.18 |
spring boot + thymeleaf + maven 세팅 (with intelliJ) (0) | 2021.06.30 |