从Maven工具链确定JDK home

时间:2017-11-06 10:21:47

标签: java maven

我将Maven构建配置为使用 maven-toolchains-plugin ,只需为多个JDK配置〜/ .m2 / toolchains.xml

<?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 进程来设置属性,而我想必须有一些简单的方法来实现这一点,我忽略了这一点。

1 个答案:

答案 0 :(得分:0)

这里是Maven插件的链接,该插件使活动JDK工具链的jdkHome可以在Maven中作为javaHome属性使用:

https://github.com/dadrus/javahome-resolver-maven-plugin

免责声明:我不是该插件的开发人员。

一些警告:工具链插件必须在javahome-resolver-plugin之前运行,因为确定默认JDK的逻辑(即不使用工具链的JDK)无法正常工作。