个人准备研读HikariCP源码,在使用maven编译HikariCP源码工程时报错:
[INFO] --- maven-toolchains-plugin:1.1:toolchain (default) @ HikariCP ---
[INFO] Required toolchain: paths [ id='java' ]
[ERROR] No toolchain found for type paths
[ERROR] Cannot find matching toolchain definitions for the following toolchain types:
paths [ id='java' ]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.453 s
[INFO] Finished at: 2021-02-19T20:19:06+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-toolchains-plugin:1.1:toolchain (default) on project HikariCP: Cannot find matching toolchain definitions for the following toolchain types:
[ERROR] paths [ id='java' ]
[ERROR] Please make sure you define the required toolchains in your ~/.m2/toolchains.xml file.
这是因为HikariCP.pom中使用了maven-toolchains-plugin,而maven中没有配置toolchain导致无法编译(toolchain可以指定编译时使用的jdk版本),见HikariCP.pom中的maven-toolchains-plugin:
<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.8</version>
<vendor>sun</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
意思是使用sun的1.8版本的JDK来编译项目,toolchain可以在%MAVEN_HOME%\conf\toolchains.xml中定义(也可以在repository目录下定义,如默认的${user.home}/.m2/目录):
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
<vendor>sun</vendor>
</provides>
<configuration>
<jdkHome>/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/home</jdkHome>
</configuration>
</toolchain>
这里定义了1.8版本的JDK的目录,当然,你也可以定义多个toolchain。
重新打开idea,点击maven的install命令,大功告成!
如果需要了解更多关于toolchain的信息,可以看这里:
http://maven.apache.org/guides/mini/guide-using-toolchains.html