前言
把spring源码clone下来之后,使用gradle编译不通过,异常日志如下。
问题1 Failed to apply plugin ‘com.gradle.build-scan’
An exception occurred applying plugin request [id: ‘com.gradle.build-scan’, version: ‘3.2’]
Failed to apply plugin ‘com.gradle.build-scan’.
The build scan plugin is not compatible with Gradle 6.0 and later.
Please use the Gradle Enterprise plugin instead.
分析问题:gradle版本不兼容
我是用的是gradle6.9.1
当前报错插件 id ‘com.gradle.build-scan’ version ‘3.2’
研究发现一个刷新我的认知的东西 一起来看看吧
https://gradle.com/ 这个是Gradle企业
https://gradle.org/ 这个是Gradle构建工具
这2个不一样 ,刚接触Gradle, 可能会觉得一样 其实不是一个东西。
这个报错建议使用Gradle Enterprise (应该是收费的)
Gradle Enterprise (Gradle企业)利用加速技术来加速软件构建和测试过程以及数据分析,从而提高故障排除效率。它是新兴的开发人员生产力工程学科的关键支持技术。
所以解决这个问题,还得了解以下2个问题才行。
什么是Gradle插件 ?
这个插件与Android SDK的关系 暂时不讨论。
Gradle插件与Gradle构建工具的对应关系?
解决办法:
由于Spring Framework源码是用gradle构建的,我们在选择gradle版本的时候,一定要用Spring Framework默认配置的gradle的版本。
报错前的配置:版本不一致
报错后的配置:
以下往这个方向的朋友-Gradle 构建工具官方兼容性对比-是错误的
Gradle 构建工具官方兼容性对比
对比官方给出的文档,发现好像没有问题 。
问题2 POM relocation to an other version number is not fully supported in Gradle : xml-apis:xml-apis:2.0.2 relocated to xml-apis:xml-apis:1.0.b2.
Please update your dependency to directly use the correct version ‘xml-apis:xml-apis:1.0.b2’.
Resolution will only pick dependencies of the relocated element. Artifacts and other metadata will be ignored.