In order to add default JVM options to our Maven mvn
command we can define an environment variable MAVEN_OPTS
.
But we can also create a file jvm.config
in the directory .mvn
in our project root directory.
On each line we define a Java option we want to apply.
We can specify JVM options, but also Java system properties we want to apply each time we run the mvn
command.
This directory and file can be added to our source control so that all users that have access to the repository will use the same JVM options.
The following example defines some Java system properties to change the Maven logging.
We also add the JVM option --show-version
, so that each time we run mvn
we also see the version of Java that is used to run our build.
We create the file .mvn/jvm.config
and the following content:
-Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss -Dorg.slf4j.simpleLogger.showThreadName=true --show-version
Now when we run mvn
we see in the output the Java version displayed and each log line has a time and thread name:
$ mvn verify openjdk 19.0.2 2023-01-17 OpenJDK Runtime Environment Temurin-19.0.2+7 (build 19.0.2+7) OpenJDK 64-Bit Server VM Temurin-19.0.2+7 (build 19.0.2+7, mixed mode, sharing) 22:12:35 [main] [INFO] Scanning for projects... ... 22:12:39 [main] [INFO] ------------------------------------------------------------------------ 22:12:39 [main] [INFO] BUILD SUCCESS 22:12:39 [main] [INFO] ------------------------------------------------------------------------ 22:12:39 [main] [INFO] Total time: 3.844 s 22:12:39 [main] [INFO] Finished at: 2023-03-26T22:12:39+02:00 22:12:39 [main] [INFO] ------------------------------------------------------------------------ $
Written with Maven 3.9.1