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.