科技资讯:第6级带来了显著的依赖性管理改进


科技资讯:第6级带来了显著的依赖性管理改进

文章插图
可定制的开源构建自动化工具Gradle发布了6.0版本,对依赖管理进行了重大改进,开箱即用支持javadoc和源JAR,并更快地增量编译Java和Groovy代码 。此外,最新版本6.1.1支持可重定位依赖缓存,以加快临时CI构建 。

格雷德尔的依赖管理在第6版中看到了一些改进 。对文档进行了结构调整,以帮助用户查找常用术语的信息 , 以及与依赖管理相关的用例 。
Gradle Module Metadata,一种类似于Apache Maven的POM文件的格式,现在在使用基于Maven或常春藤的发布插件时默认发布 。基于这个模块元数据,Gradle可以在称为平台的项目之间推荐和共享版本,这是一组旨在一起使用的模块 。
格雷德尔的新组件功能可以用来检测和解决相互排斥的依赖之间的冲突 。一种功能标识一个或多个模块或库提供的特性,如日志记录 。通过使用功能,Gradle的依赖管理引擎可以检测依赖关系图中不兼容的功能,并允许用户选择依赖关系图中的不同模块提供相同的功能 。
例如,说一个模块依赖于SLF4J API库和Apache ZooKeeper库,希望使用JDK日志作为SLF4J实现库 。由于ZooKeeper本身依赖于Log4J作为SLF4J实现库 , 因此该模块可能在其类路径上有两个SLF4J实现 。通过声明一个组件能力规则,该规则声明JDKlogger和Log4J库都提供相同的能力,Gradle可以先发制人地检测冲突 。
此外,Gradle提供了依赖约束的概念,以选择满足所有声明约束的传递依赖的最高版本 。
格拉德6支持javadoc,jar和源代码 , jar的自动创建和发布..它还使用Gradle模块元数据发布有关这些JAR的信息 。此功能可用于Java或Java库项目:
通过分析代码更改的影响 , 并将作为另一个类的实现细节的类排除在重新编译之外,Gradle6提供了Java和Groovy代码的更快增量编译 。Gradle跳过使用编译避免功能在不同项目中重新编译类 。对于具有多个模块和深度依赖链的大型项目 , 这种增强将减少重新编译的数量,并加快增量编译 。
从6.1版本开始 , Gradle的依赖缓存可以复制并提供给临时构建代理,以便代理重用以前下载的依赖项,并加快构建过程 。临时构建代理是一个只使用一次并在构建结束时丢弃的代理 。由于临时代理没有状态 , 每个构建都需要从远程存储库下载依赖项 。通过将现有的依赖项缓存复制到临时构建代理,构建将不再支付下载所有依赖项的费用 。
【科技资讯:第6级带来了显著的依赖性管理改进】在Gradle6中的其他一些值得注意的特性是支持JDK13、保护构建完整性的安全改进、在PolyglotJVM构建中定义语言之间的编译顺序的能力以及Gradle插件作者和工具提供商的改进 。