[
https://issues.apache.org/jira/browse/MTOOLCHAINS-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet closed MTOOLCHAINS-49.
--------------------------------------
Resolution: Fixed
> Automatic discovery of JDK toolchains
> -------------------------------------
>
> Key: MTOOLCHAINS-49
> URL: https://issues.apache.org/jira/browse/MTOOLCHAINS-49
> Project: Maven Toolchains Plugin
> Issue Type: Improvement
> Reporter: Guillaume Nodet
> Assignee: Guillaume Nodet
> Priority: Major
> Fix For: 3.2.0
>
>
> Add mojos to:
> * display a human readable list of discovered JDK toolchains
> * generate the toolchains.xml file for discovered JDK toolchains
> * select a JDK toolchain with specific behaviour if the current JDK fulfils
> the requirements
> The generation of the {{toolchains.xml}} file is not necessary to use
> discovered toolchains. The {{select-jdk-toolchain}} will select a toolchain
> amongst explicitely configured toolchains and discovered toolchains. The
> information for discovered toolchains are cached in
> {{~/.m2/discovered-toolchains-cache.xml}} file by default.
> The {{select-jdk-toolchain}} config below allows using the current JDK, or
> any other discovered JDK >= 17. The benefit is that the current JDK can be
> kept for speed, but ensuring the usage of any JDK 17 or higher if the current
> jdk is below the requirements.
> {code}
> <profile>
> <id>toolchains</id>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-toolchains-plugin</artifactId>
> <version>3.1.1-SNAPSHOT</version>
> <executions>
> <execution>
> <goals>
> <goal>select-jdk-toolchain</goal>
> </goals>
> <configuration>
> <version>[17,)</version>
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
> </profile>
> {code}
> The {{display-discovered-jdk-toolchains}} shows human readable discovered
> JDKs:
> {code}
> > mvn
> > org.apache.maven.plugins:maven-toolchains-plugin:3.1.1-SNAPSHOT:display-discovered-jdk-toolchains
> ...
> [INFO] Discovered 13 JDK toolchains:
> [INFO] - /Users/gnodet/.sdkman/candidates/java/21.ea.22-open
> [INFO] provides:
> [INFO] vendor: Oracle Corporation
> [INFO] runtime.version: 21-ea+22-1890
> [INFO] runtime.name: OpenJDK Runtime Environment
> [INFO] version: 21-ea
> ...
> {code}
> while the {{generate-jdk-toolchains-xml}} will write the output in xml format:
> {code}
> > mvn
> > org.apache.maven.plugins:maven-toolchains-plugin:3.1.1-SNAPSHOT:generate-jdk-toolchains-xml
> >
> ...
> <?xml version="1.0" encoding="UTF-8"?>
> <toolchains xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0
> http://maven.apache.org/xsd/toolchains-1.1.0.xsd"
> xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <toolchain>
> <type>jdk</type>
> <provides>
> <vendor>Oracle Corporation</vendor>
> <runtime.version>21-ea+22-1890</runtime.version>
> ...
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)