热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gradle引入jar时自动引入父依赖_Gradle6.6RC6发布,引入配置缓存特性,大幅提升构建性能...

Gradle6.6RC6发布了。Gradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化构建工具,支持依赖管理和多项目,类似Ma

Gradle 6.6 RC6 发布了。Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具,支持依赖管理和多项目,类似 Maven,但比之简单轻便。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的 XML。

此版本最大亮点是引入了一个实验性选项:配置缓存(Configuration caching),它是一个主要的性能优化特性,可以使 Gradle 跳过构建的配置阶段,并尽快开始执行任务。

配置缓存

在运行任何任务之前,Gradle 需要运行配置阶段。当前,这是在每次构建调用时完成的,并且会产生大量的开销,尤其是在大型项目中。

配置缓存通过缓存配置阶段的结果并将其重新用于后续构建,从而可以显著提高构建性能。使用配置缓存,Gradle 可以在不影响构建配置的任何内容发生变化的情况下完全跳过配置阶段,如下所示:

1aa041bd37185c9326d9f18cc05f0b58.gif

此外,启用配置缓存后,Gradle 能够优化任务执行,并默认情况下并行执行更多任务。

目前该特性处于高度试验阶段,默认情况下不启用或建议用于生产环境。可以通过--configuration-cache在命令行上提供参数或将其添加到运行配置中来启用此实验特性。

标准化的运行时类路径改善缓存命中率

对于最新检查和构建缓存,Gradle 需要确定两个任务输入属性是否具有相同的值。为此,Gradle 首先将两个输入标准化,然后比较结果。

现在,运行时类路径分析将检查清单META-INF文件和属性文件,而忽略对注释、空格和顺序差异的更改。此外还可以有选择地忽略不影响运行时类路径的属性。

normalization { runtimeClasspath { metaInf { ignoreAttribute("Implementation-Version") ignoreProperty("timestamp") } }}

类路径上的任何 ZIP 文件被重新生成并且仅因不重要的值或注释而不同的情况下,将提高生成高速缓存命中的可能性。这种规范化最有用的最常见情况是 JAR 文件,不过它也可以被应用于类路径上的任何 ZIP 文件,例如 AAR、WAR 和 APK 文件。

处理用户提供的凭证

构建有时会要求用户提供凭据,例如,为了发布工件,可能需要凭证才能与工件存储库进行身份验证。将凭据保留在构建脚本之外是一个好习惯。

此版本提供了用于凭证的新 API,该凭证通过建立约定以使用 Gradle 属性提供凭证来简化凭证的使用,Gradle 属性可以作为命令行参数、环境变量或gradle.properties文件中的值提供给构建环境。当 Gradle 知道某个时候该版本将需要凭证并且凭证已丢失时,它还会执行“快速失效”。

从此版本开始,可以轻松地将用于身份验证的凭证外部化到工件存储库:

repositories { maven { name &#61; &#39;mySecureRepository&#39; credentials(PasswordCredentials) // url &#61; uri(<>) }}

mySecureRepository将在 Gradle 属性中搜索名称为mySecureRepositoryUsername和mySecureRepositoryPassword的凭据。

同时还可以直接使用新的 provider API 向外部工具提供凭据&#xff1a;

tasks.register(&#39;login&#39;, Exec) { def loginProvider &#61; providers.credentials(PasswordCredentials, &#39;login&#39;) inputs.property(&#39;credentials&#39;, loginProvider) doFirst { PasswordCredentials loginCredentials &#61; loginProvider.get() // use credentials }}

上面的凭据将在 Gradle 属性中使用名称loginUsername和loginPassword进行搜索。

此外&#xff0c;此版本还有其它改进&#xff0c;包括对 Java 编译 --release 标志的支持、文件系统监视的稳定性改进、依赖管理的改进&#xff0c;以及 bug 修复等&#xff0c;详情查看更新说明&#xff1a;https://docs.gradle.org/6.6-rc-6/release-notes.html



推荐阅读
  • MyBatis入门指南:环境搭建与基础配置详解
    本文详细介绍了MyBatis的基础配置流程,包括在Maven项目中添加MyBatis依赖、IDEA中配置数据库连接、导入SQL脚本以及编写mybatis-config.xml配置文件等关键步骤。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • 本文介绍了如何通过创建自定义 XML 文件来修改 Android 中 Spinner 的项样式,包括颜色和大小的调整。 ... [详细]
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • Maven快照版本管理及更新策略详解
    本文深入探讨了Maven中的快照版本管理和更新策略,解释了快照版本与正式版本的区别,并提供了如何配置快照更新策略的方法,以确保项目依赖始终保持最新。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文介绍了如何在 Django 项目中集成和配置 REST Framework,以支持 API 开发。通过在 settings.py 文件中注册 'rest_framework' 应用,可以轻松启用这一功能。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
author-avatar
命注定啊_894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有