Chapter 6. Setting configuration properties

By default, Quarkus reads properties from the application.properties file located in the src/main/resources directory. If you change build properties, make sure to repackage your application.

Quarkus configures most properties during build time. Extensions can define properties as overridable at run time, for example the database URL, a user name, and a password which can be specific to your target environment.

Prerequisites

  • You have a Quarkus Maven project.

Procedure

  1. To package your Quarkus project, enter the following command:

    ./mvnw clean package
  2. Use one of the following methods to set the configuration properties:

    • Setting system properties:

      Enter the following command where <key> is the name of the configuration property you want to add and <value> is the value of the property:

      java -D<key>=<value> -jar target/myapp-runner.jar

      For example, to set the value of the quarkus.datasource.password property, enter the following command:

      java -Dquarkus.datasource.password=youshallnotpass -jar target/myapp-runner.jar
    • Setting environment variables:

      Enter the following command where <key> is the name of the configuration property you want to set and <value> is the value of the property:

      export <key>=<value> ; java -jar target/myapp-runner.jar
      Note

      Environment variable names follow the conversion rules of Eclipse MicroProfile. Convert the name to upper case and replace any character that is not alphanumeric with an underscore (_).

    • Using an environment file:

      Create an .env file in your current working directory and add configuration properties where <PROPERTY_KEY> is the property name and <value> is the value of the property:

      <PROPERTY_KEY>=<value>
      Note

      For development mode, this file can be located in the root directory of your project, but it is advised to not track the file in version control. If you create an .env file in the root directory of your project, you can define keys and values that the program reads as properties.

    • Using the application.properties file.

      Place the configuration file in $PWD/config/application.properties directory where the application runs so any runtime properties defined in that file will override the default configuration.

      Note

      You can also use the config/application.properties features in development mode. Place the config/application.properties inside the target directory. Any cleaning operation from the build tool, for example mvn clean, will remove the config directory as well.