'Setting VM argument via pom.xml

I need to set -Duser.language via pom.xml since I need language specific database queries. When I pass -Duser.language=tr to VM options upon running spring boot application on Intellij, it works. But I need this to be done in pom.xml for profiling.

Below ways are not working. Language is not set.

  <profile>
      <properties>
            <argLine>-Duser.language=tr -Duser.region=TR</argLine>
      </properties>
  ...
  </profile>

 <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
           <source>${java.version}</source>
           <target>${java.version}</target>
           <verbose>true</verbose>
           <fork>true</fork>
           <compilerArgs>
                <arg>-J-Duser.language=tr_TR</arg>
           </compilerArgs>
      </configuration>
 </plugin>

 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.22.2</version>
     <configuration>
          <argLine>-Duser.language=tr -Duser.region=TR</argLine>
          <systemPropertyVariables>
                 <user.language>tr</user.language>
                 <user.region>TR</user.region>
          </systemPropertyVariables>
     </configuration>
 </plugin>

Only this is working but I need to run application with mvn spring-boot:run for this to work and that is not an option.

 <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
            <jvmArguments>
                -Duser.language=tr
            </jvmArguments>
      </configuration>
      ...
 </plugin>

How can I pass vm arguments via pom.xml?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source