• gradle-7.5.1-all 百度网盘下载


    Gradle 7.5.1 发布

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

    这是 Gradle 7.5 系列的第一个补丁版本。

    下载连接:点击进入快速下载

    Gradle 7.5.1中修复了8个问题。

    官方建议用户进行升级。它修复了以下问题

    [#21400] - Scala编译失败,出现“不支持rt.jar(类SBT . internal . Inc . dummyvirtualfile)”
    [#21399] - Gradle 7.5 Javadoc插件因多模块聚合而损坏(由于设置-源-路径)
    [#21374] -使用ValueSourceParameters将任务属性集存储到ValueSource提供程序。无参数类型进入配置缓存失败
    [#21365] -更新升级指南以警告Checkstyle工作目录中的更改
    [#21353] - CheckStyle失败,因为它没有配置javaLauncher
    [#21346] -当上游任务失败时,终结器的终结器不再执行
    [#21301] -将某些类型的配置属性传递给Checkstyle时出现NullPointerException
    [#21269] -jav exversion。VERSION_18依然标着@孵化中

    此版本包括使用 Java 18 构建代码和运行 Gradle、使用 Groovy 4 构建代码、响应速度更快的持续构建、改进的依赖解析诊断以及配置缓存改进以提高性能、为 JVM 提供 Adoptium 工具链等等。

    升级说明

    通过更新您的包装器,切换您的构建以使用Gradle 7.5.1:

    ./gradlew wrapper --gradle-version=7.5.1

    参见Gradle 7.x升级指南了解升级到Gradle 7.5.1时的弃用、重大变更和其他注意事项。

    关于Java、Groovy、Kotlin和Android兼容性,请参见完全兼容性说明。

    新功能和可用性改进

    支持Java 18

    Gradle现在支持在上运行并使用Java 18。

    对Groovy 4的支持

    Gradle现在支持使用Groovy 4.0构建软件。注意,Groovy DSL构建脚本仍然使用Groovy 3。

    Scala Zinc已更新

    默认的Scala Zinc版本是更新至1.6.1。

    Zinc是Scala增量编译器,它允许Gradle总是编译当前文件更改所需的最小文件集。它考虑了哪些方法正在被使用,哪些方法已经被改变,这意味着它比文件间的依赖关系更细粒度。

    使用Java 9+的Windows和macOS上的持续构建响应速度更快

    连续构建当输入发生变化时,使用相同的请求任务自动重新执行构建。这允许在开发过程中持续的反馈。

    由于JDK的内部变化,持续构建在Java 9和更高版本的Windows和macOS上不能很好地工作。检测到更改并触发构建可能需要10秒钟。

    现在,Gradle几乎可以立即在Windows和macOS上对所有Java版本进行修改,使得Continuous Build在所有主流操作系统上快速响应。这是因为Gradle现在使用它自己的健壮的本地实现的文件系统监视系统,而不是依赖JDK中的通用API。

    改进了依赖关系解决方案的诊断报告
    传出变量

    这outgoingVariants报告现在提供了更多信息,有助于进一步了解变体感知依赖性解析结果。

    当生产者依赖于消费者时,此报告在确定为什么另一个消费者项目选择了该生产者项目的特定变体时非常有用。从生产者项目中运行报告,以列出由它构建的每个变体(包括仅对其他本地项目可见的次级变体)。输出包含生产者的每个变体上存在的能力和属性,以及下面详细描述的其他信息。此输出可以与新的resolvableConfigurations报告在消费者中运行。

    在这里插入图片描述

    1. 现在会打印二级变型(如果有)的描述。
    2. 配置使用@Incubating属性用(i)。
    3. 报告底部的图例阐明了次级变体的用法。
    • 输出的格式(和丰富控制台的颜色)现在更加清晰,与其他报告更加一致。
    • 功能、属性和工件列表按字母顺序排序。
    • (未显示)分类器现在打印在工件(如果存在)旁边。
    • (未显示)使用时的新消息–all和–variant更好地描述结果(或缺乏结果)的选项
      参见OutgoingVariantsReportTaskDSL参考以了解更多详细信息。
    二级变型的描述

    定义时次级变体,这是仅适用于其他本地Gradle项目的变体,有一个新的配置变体可用于为变体提供注释或描述的方法。这些描述将由打印outgoingVariants为Java插件产生的现有二级变体添加了报告和默认值。

    可解析的配置

    有一个新的resolvableConfigurations可用的报告,它将显示项目中可以解析的所有配置的信息。

    这份报告补充了outgoingVariants报告并且意味着从依赖关系的消费者侧运行,以确定当消费者依赖生产者时,消费者项目为什么选择生产者项目的特定变体。它包括以下信息:

    • 描述、属性和(直接)扩展配置
    • A --recursive可以设置选项标志,以显示过渡扩展的所有配置
    • 列出了在解析过程中受兼容性或歧义规则影响的属性
    • A --configuration选项可以将此报告限制为单一配置
    • A --all选项标志可以被设置为包括既可解析又可消费的遗留配置;默认情况下,这些将被隐藏

    参见ResolvableConfigurationsReportTaskDSL参考以了解更多详细信息。

    依赖性洞察

    这dependencyInsight报告提供了有关特定依赖关系的信息,包括选择了什么变体,以及解析过程中使用的属性。

    该报告现在使用一个表格来显示变量,这使得更容易辨别属性值的来源,并查看为什么选择了特定的变量:

    在这里插入图片描述

    1. 变体名称列在顶部,在单词“变体”之后
    2. 变量输出现在是表格格式。
    3. 仅出现在变体元数据中的属性仅包含“已提供”列中的文本
    4. 变体的元数据中存在的属性和配置请求的属性在两列中都包含文本
    5. 仅由配置请求的属性仅包含“请求”列中的文本

    如(3)和(5)中所示,如果项目不在一列中,则它们会显示为橙色。该表首先按组(3)、(4)和(5)排序;然后在每个组内按字母顺序排列。

    依赖性解析结果可以用作任务输入

    任务可能需要访问相关性解析结果。例如,像这样的内置任务dependencies和dependencyInsight这样做是为了提供关于已解析工件和依赖图的报告。其他任务可能会根据依赖项解析结果生成文件输出。以前,只能通过在任务操作中执行依赖关系解析来实现。然而,这导致了次优的性能。

    从Gradle 7.5开始,现在可以将依赖关系解析结果声明为任务输入。

    这允许编写消耗依赖性解析结果的任务。声明这样的输入,而不是在任务动作中进行未声明的依赖关系解析,允许Gradle优化构建增量。此外,完全支持这些新类型的任务输入配置缓存。

    您可以在了解更多信息创作任务用户手册章节和专用样品。

    配置缓存改进

    这配置缓存通过缓存配置阶段的结果并在后续构建中重用它来缩短构建时间。

    在配置时运行外部流程

    以前,外部流程从exec或者javaexecAPI被配置缓存忽略,如果外部进程的输出影响配置,这可能是一个潜在的正确性问题。

    A 新的基于提供者的API现在可以以配置缓存兼容的方式获得外部进程的输出。这exec和javaexecAPI现在是不准如果启用了配置缓存以防止潜在问题。

    如果需要与外部流程进行更复杂的交互,那么可以定制ValueSource可以使用实现。被注射的ExecOperations应该使用服务来运行外部流程。

    配置时读取的文件成为生成配置输入

    配置时读取的文件FileInputStream或者一些Kotlin APIs现在自动成为构建配置输入。如果这些文件的内容在两次生成之间发生变化,配置缓存将失效。

    以前,文件读取被忽略,如果文件内容影响配置,这可能是一个潜在的正确性问题。

    无需不必要地使配置缓存失效即可访问环境的新方法

    由于自动构建配置输入检测是在Gradle 7.4中引入的,一些读取环境变量或系统属性子集的常见模式会导致配置缓存过度失效,从而导致次优性能。例如,遍历所有环境变量以查找名称以某个前缀开头的变量会导致所有可用的变量,甚至是不相关的变量,成为配置输入。

    现在有两种新的选择可以缓解这种情况。对于更简单的用例,可以访问基于提供者的API系统属性或者环境变量名称以某个前缀开头。高级处理,如用正则表达式过滤姓名,可以在自定义ValueSource实施。读取文件、环境变量或系统属性不再将生成配置输入添加到ValueSource。的值ValueSource每次运行构建时都会重新计算,只有当该值发生更改时,配置缓存项才会失效。

    新的兼容插件和任务

    这kotlin-dsl插件现在与配置缓存兼容。

    这dependencyInsight, outgoingVariants和resolvableConfigurations任务现在与配置缓存兼容。

    新的STABLE_CONFIGURATION_CACHE特征标志

    配置缓存引入了许多关于构建逻辑的需求。许多问题已经在HTML报告。目前,对于复杂的构建来说,调整构建逻辑以与配置缓存完全兼容可能是一项巨大的工作。

    此版本引入了STABLE_CONFIGURATION_CACHE允许逐步推出最具潜在破坏性需求的标志。该标志目前支持验证,如检测未声明的共享构建服务使用和配置时使用的外部流程。

    建议尽快启用此标志,以便为移除标志做好准备,并默认启用链接的功能。

    了解有关此功能标志的功能的更多信息用户手册。

    JVM工具链的改进

    Java工具链提供一种简单的方法来声明应该使用哪个Java版本来构建您的项目。默认情况下,Gradle会检测已安装的JDK或者自动下载新的工具链版本。

    Java工具链可以通过在Adoptium和AdoptOpenJDK之间自动选择来下载任何JDK
    Gradle现在在下载JDK时首先检查Adoptium API,而不是只使用遗留的AdoptOpenJDK API。这允许下载新的JDK 18版本,这不能通过AdoptOpenJDK获得,同时仍然保持下载不再受Adoptium支持的版本的能力,如JDK 9-10和12-16。

    如果您使用内部镜像来下载JDK,有一个新的Gradle属性org.gradle.jvm.toolchain.install.adoptium.baseUri来控制URI的收养基地。这是除了org.gradle.jvm.toolchain.install.adoptopenjdk.baseUri属性,如果在Adoptium API中找不到JDK,仍将使用该属性。

    IDE集成改进
    Eclipse中改进的测试源分离

    此版本为提供了改进的支持测试源在月蚀中。

    Eclipse类路径文件由eclipse插件有以下变化:
    1. 测试配置中定义的项目依赖项获取test=true类路径属性
    2. 定义的所有源集和依赖项JVM测试套件插件默认情况下也被标记为测试代码
    3. 这eclipse插件DSL公开属性以配置测试源
    eclipse {
        classpath {
            testSourceSets = [sourcesSets.test, sourceSets.myTestSourceSet]
            testConfigurations = [configuration.myTestConfiguration]
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当项目在中同步时,这些更改也会反映出来造船.

    看见文档了解更多详情。

    使用查询单个属性properties工作

    内置的properties任务将所有项目属性打印到控制台。现在,这个任务需要一个可选的–property参数,该参数将其配置为仅显示选定的属性。

    $ gradle properties --property buildFile
    
    > Task :properties
    
    ------------------------------------------------------------
    Root project 'example-project'
    ------------------------------------------------------------
    
    buildFile: /path/to/project/build.gradle
    
    BUILD SUCCESSFUL in 550ms
    1 actionable task: 1 executed
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    这对于跟踪CI系统上的特定属性非常有用,并且比以前需要更少的解析和过滤。

    Groovydoc公开了更多选项

    这Groovydoc任务现在显示更多选项:

    • access:用于控制文档中包含的访问级别,默认为PROTECTED
    • includeAuthor:用于控制作者是否显示在文档中,默认为false
    • processScripts:用于控制文档中是否包含脚本,默认为true
    • includeMainForScripts:用于控制脚本的main方法包含在文档中,默认为true

    这些默认值与之前使用的相同,因此默认行为应该没有变化。

    -show-version (-V)标志
    这-V标志(长格式–show-version)指示Gradle首先打印版本信息,然后继续执行任何请求的任务。这与先前存在的-v(长格式–version)标志,它打印版本信息,然后立即退出。

    在CI环境中,此标志可能有助于在日志中记录梯度版本信息,作为单个梯度执行的一部分。

    性能改进

    默认情况下,Checkstyle任务使用工具链并并行执行。
    这Checkstyle插件现在使用Gradle worker API将Checkstyle作为外部工作进程运行,因此多个Checkstyle任务现在可以在一个项目中并行运行。当这些任务中的几个存在于单个项目中时,这可以极大地提高整体构建性能。您可以通过minHeapSize和maxHeapSizeCheckstyle任务的属性。如果出现内存不足错误,请参见Gradle 7.x升级指南。

    Checkstyle现在使用JVM工具链以便最小化JDK安装要求。在Java项目中,Checkstyle将使用项目所需的相同版本的Java。在其他类型的项目中,Checkstyle将使用Gradle守护进程所使用的Java版本。

    在多线程上运行单个PMD任务

    PMD是一个运行在项目的Java源文件上的质量分析工具。

    有了这个版本的Gradlethread参数PMD的提议现在通过PMD的扩展和任务暴露了出来。这允许PMD的配置在多个线程上运行其分析。

    参见证明文件了解更多信息。

    与Java 9+更好的测试兼容性

    在Java 9+上运行时,Gradle不再打开java.base/java.util和java.base/java.lang面向所有人的JDK模块Test任务。在某些情况下,这将导致代码在测试期间通过,但在运行时失败。

    此更改可能会导致新的测试失败和警告。当在Java 16+上运行时,在JDK内部执行反射的代码将无法通过测试。在Java 9-15上运行时,非法访问警告会出现在日志中。虽然这种变化可能会破坏一些现有的构建,但大多数失败都可能会暴露出被抑制的问题,而这些问题只能在运行时检测到。

    有关如何减轻这种变化的详细说明,请参见升级指南了解详情。

    安全咨询

    CVE-2022-31156-当无法执行签名验证时,依赖项验证可以忽略校验和验证。

    提升的功能

    升级功能是在Gradle的早期版本中酝酿的功能,但现在受到支持并具有向后兼容性。请参阅“用户手册”一节功能生命周期”了解更多信息。

    以下是此Gradle版本中提升的功能。

    • 这TargetJvmEnvironment接口现在稳定了。
  • 相关阅读:
    Flask结合gunicorn和nginx反向代理的生产环境部署及踩坑记录
    mac本地安装PHP redis扩展
    Kubernetes IPVS和IPTABLES
    RocketMQ源码分析(十二)之CommitLog同步与异步刷盘
    【亚马逊云+阿里万网】| 实现网站证书配置和域名解析
    数据库设计
    Solidity 的 ABI 和 bytecode 是什么
    出现“线程无法访问非本线程创建的资源”的错误
    Linux内核由哪些组成,这些你了解不
    Linux 下获取进程所在文件的路径
  • 原文地址:https://blog.csdn.net/Jun5008/article/details/126556719