I've been using Spring Boot for a while now, and I can't believe I didn't realize this behavior with properties and profiles before. Given an application.yml like this:
test: X
---
spring:
profiles: a
test: A
---
spring:
profiles: b
profiles.include: a
test: B
Obviously if running with the "a" profile, the property test
will be "A". But what happens when running with the "b" profile?
java -Dspring.profiles.active=b test.jar
The answer is again "a". In other words, when you include another profile, it overrides any properties from it over top of the active one. I always assumed that it would be the other way around, but that's not the case.