从 Maven 工具链确定 JDK 主页
Determine JDK home from Maven toolchain
我有一个 Maven 构建配置为使用 maven-toolchains-plugin,~/.m2/toolchains.xml 简单配置为多个 JDKs:
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>9</version>
<vendor>oracle</vendor>
</provides>
<configuration>
<jdkHome>/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home</jdkHome>
</configuration>
</toolchain>
<toolchain>
<!-- ... several more JDKs ... -->
</toolchain>
</toolchains>
我的目标是在 POM 中使用 jdkHome
的值,作为 JDK9 jlink 工具的参数,但我不能找不到任何方法来提取值,或设置一个可用的 属性,它引用了工具链 JDK 的 jdkHome
/JAVA_HOME
。有没有人找到实现这一目标的方法?我真的不想为了设置另一个 exec-maven-plugin 或 maven-antrun-plugin 进程属性,我想一定有一些简单的方法可以实现这一点,但我忽略了。
这是 Maven 插件的 link,它使活动 JDK 工具链的 jdkHome 在 Maven 中作为 javaHome 属性 可用:
https://github.com/dadrus/javahome-resolver-maven-plugin
免责声明:我不是该插件的开发者。
一些注意事项:工具链插件必须在 javahome-resolver-plugin 之前 运行 因为确定默认 JDK 的逻辑(即没有工具链使用的那个)不起作用打算。
我有一个 Maven 构建配置为使用 maven-toolchains-plugin,~/.m2/toolchains.xml 简单配置为多个 JDKs:
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>9</version>
<vendor>oracle</vendor>
</provides>
<configuration>
<jdkHome>/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home</jdkHome>
</configuration>
</toolchain>
<toolchain>
<!-- ... several more JDKs ... -->
</toolchain>
</toolchains>
我的目标是在 POM 中使用 jdkHome
的值,作为 JDK9 jlink 工具的参数,但我不能找不到任何方法来提取值,或设置一个可用的 属性,它引用了工具链 JDK 的 jdkHome
/JAVA_HOME
。有没有人找到实现这一目标的方法?我真的不想为了设置另一个 exec-maven-plugin 或 maven-antrun-plugin 进程属性,我想一定有一些简单的方法可以实现这一点,但我忽略了。
这是 Maven 插件的 link,它使活动 JDK 工具链的 jdkHome 在 Maven 中作为 javaHome 属性 可用:
https://github.com/dadrus/javahome-resolver-maven-plugin
免责声明:我不是该插件的开发者。
一些注意事项:工具链插件必须在 javahome-resolver-plugin 之前 运行 因为确定默认 JDK 的逻辑(即没有工具链使用的那个)不起作用打算。