When working with Java projects, you may end up working across multiple JDKs. It may be that you use different vendors, such as Oracle or the OpenJDK, or whether you're working with different Java versions.
It can be annoying to constantly change your `JAVA_HOME`, and doesn't work when you may need multiple JDKs in a single project.
Fortunately, the [Maven Toolchain Plugin](https://maven.apache.org/guides/mini/guide-using-toolchains.html) has us covered.
In our top-level `pom.xml` we need to add the plugin, and define which JDKs:
```xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.11</version>
<vendor>openjdk</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
```
Then, in our global `~/.m2/toolchains.xml` we provide paths to the toolchains our machine supports. For instance, on Arch Linux, I have the following setup: