正确设置工具链后 Maven 构建错误

Posted

技术标签:

【中文标题】正确设置工具链后 Maven 构建错误【英文标题】:Maven build error after setting toolchain right 【发布时间】:2017-03-14 06:56:52 【问题描述】:

我安装了 Java 版本 1.8.111,运行 mvn3 install 后的初始错误消息如下。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain (default) on project myfile: Cannot find matching toolchain definitions for the following toolchain types:
[ERROR] jdk [ vendor='sun' version='1.6' ]
[ERROR] Please make sure you define the required toolchains in your ~/.m2/toolchains.xml file.

为了解决这个问题,我已将 toolchains.xml 更新到版本 1.8.111,但仍然遇到相同的错误。在运行mvn3 clean 并成功清理后我也尝试过,但仍然出现相同的错误。

谁能指出这个 1.6 版的来源? 我已经检查了 JAVA_HOME,它设置为 1.8。

谁能解释一下maven如何调用Java版本?

感谢您的帮助。

下面是我的 toolchains.xml

【问题讨论】:

我相信您以错误的方式解释错误消息。对我来说,您尝试构建的项目似乎需要 JDK 1.6.x 来构建。要对此进行测试,您可以编辑您的 toolchains.xml 以告诉 maven 使用您的 JDK 1.8 作为 JDK 1.6 的工具链 您可以发布您的~/.m2/toolchains.xml 文件吗? 应该如何解读?你能解释一下那个错误信息在说什么吗? 【参考方案1】:

您的应用程序应该使用JDK 1.6 构建并找到它,Maven 正在您的home/.m2/ 目录中的toolchains.xml 中寻找[ vendor='sun' version='1.6' ] 的定义(参见例如this maven guide)。你只需要指向它,一切都应该很好。

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.6</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
       <jdkHome>/Library/Java/JavaVirtualMachines/jdk1.6.X_XX.jdk/Contents/Home</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

【讨论】:

同样适用于 jdk9...只需将 1.6 替换为 9

以上是关于正确设置工具链后 Maven 构建错误的主要内容,如果未能解决你的问题,请参考以下文章

高效使用Java构建工具,Maven篇|云效工程师指北

Xcode 11 GM Seed 工具链无效

CMake:自定义工具链:CMAKE_AR 和 CMAKE_CXX_ARCHIVE_CREATE

cmake中QT的错误工具链

STM32 Eclipse + ARM GNU 工具链错误链接器

AWS Java 开发工具包构建错误