Run jar with spring profile environment variable

I’m trying to use a spring profile argument to run a jar file, the profile isn’t working:

java -jar -Dspring.profiles.active="test" build/libs/moley2-0.0.1-SNAPSHOT.jar

Here is my application.yml file:

spring:
  profiles: dev
server:
  port:8000
---
spring:
  profiles: test
server:
  port:9000

The jar was created using gradle build in the projects root directory. Running the jar with the command provided starts on port 8080 so it seems like the profile isn’t loading. I’m sure I’m missing something simple here as I’m new to gradle / spring. Thanks in advance for any suggestions.

Answer

The property server should be:

server:
  port: 9000

Instead of:

server:
  port:9000

A space is missing between the colon and the value.


Also notice that configuring the profile as:

spring:
  profiles: dev

is deprecated since 2.4.0 version and should be replaced with:

spring:
  config:
    activate:
      on-profile: dev

More info in the doc. Or a tutorial here.

Leave a Reply

Your email address will not be published. Required fields are marked *