[프로젝트 패키지 및 배포 루틴]
pom.xml
...
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>local</spring.profiles.active>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
...
spring:
profiles:
active: @spring.profiles.active@
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
(스프링 부트의 경우 spring-boot-starter-parent 모듈를 inherit 하는 경우 생략가능, 활성화 되도록 기본 설정됨)
## 명시하지 않을 경우 activeByDefault로 설정한 local이 기본 profile로 적용
mvn clean package
## local deploy
mvn clean package -P local
## 테스트용 deploy
mvn clean package -P test
## production용
mvn clean package -P prod
명령어를 간략히 설명하자면
mvn clean package -P prod
이 명령어는 prod 프로파일을 적용하여 앱을 패키지 할 것이고, spring.profiles.active 의 값도 prod 로 설정할 것이라는 의미
Official
참고