版本目录是 Gradle 构建工具中一项相对较新的功能。它们通过提供一种标准化的方式来定义和访问项目中使用的依赖项目录,从而帮助管理依赖项——确保团队中的所有开发人员在依赖项名称和定义上保持一致,从而为每个人节省时间和认知负担。像大多数 Gradle 功能一样,它们非常灵活,因此用户必须提出自己的使用约定。

在这篇博客文章中,我们将分享 Develocity 团队在使用版本目录管理依赖项时采用的一些最佳实践。特别是,我们将研究我们关于如何派生...
❯ 阅读更多
ℹ️ 2024 年 7 月 15 日更新 |
我们发现错误导致插件解析失败出现误报。已从列表中删除 4 个插件,导致删除了 9 个依赖项。我们还添加了 105 个依赖于一个或多个受影响插件的插件。这些插件将无法传递解析。未考虑 exclude 导致了第一次更改,第二次更改是由于未考虑插件依赖项。 |
既然 JFrog 已经确认 JCenter 将永久重定向到 Maven Central,我们认为 Gradle 插件门户用户了解该决定对门户及其构建的影响非常重要……
❯ 阅读更多
我们与 Gradle 的 CTO Adam Murdoch 就他从 Gradle 的起源开始的历程进行了对话。Adam 深入介绍了最新功能,并讨论了构建工具的未来。
Gradle 的起源
Adam 在 2008 年左右开始了他的 Gradle 之旅,当时他正在寻找一种强大的替代方案来替代他当时使用的基于 Ant 的构建系统。他回忆说:“我当时正在寻找我们基于 Ant 的构建系统的替代品,偶然发现了这个名为 Gradle 的新工具,开始使用它,[并] 开始提交补丁以进行改进。”
Gradle 的创始人 Hans Dockter 认可了 Adam 的贡献,并邀请他作为维护者加入。这次合作标志着开始……
❯ 阅读更多
介绍
Google Summer of Code (GSoC) 项目已公布!
❯ 阅读更多
我们的新学习门户网站 DPE 大学现已上线!我们发布了首批 10 门免费的、自定进度的 Gradle 构建工具、Apache Maven、Develocity 构建扫描和 DPE 课程。与我们一起学习最佳实践,提高您的 Gradle 技能,并提高您的开发人员生产力!
您可以在 gradle.com 上的博客文章中找到完整的 DPE 大学公告。在这里,我们将重点介绍 Gradle 构建工具的培训和内容。

可用课程
初始版本包括六门 Gradle 构建工具课程,旨在帮助具有任何专业知识的开发人员和构建工程师:从初学者到大型开发人员生产力平台的经验丰富的维护人员。目前,以下 Gradle 构建工具课程可用
- Gradle 介绍...
❯ 阅读更多
大家好!我谨代表 Gradle 社区,祝大家农历新年快乐!2023 年是 Gradle 构建工具伟大的一年,发布了许多新功能和倡议。让我们回顾一下关键更新
- Gradle 8 基线,包含 7 个功能丰富的版本
- Kotlin DSL 成为 Gradle 的新默认设置
- 配置缓存、构建速度和可伸缩性改进
- 我们首次参与 Google Summer of Code 和 Major League Hacking
- Gradle Enterprise 重命名为 Develocity,以及 Gradle 构建扫描增强功能
- 下一步是什么,声明式 Gradle 和通往 Gradle 9 的道路

Gradle 8
2023 年 2 月,Gradle 团队宣布了 Gradle 8.0 - 一个...
❯ 阅读更多
使 Gradle 构建工具快速且可伸缩的众多性能优化之一是避免编译。Gradle 通过确定编译结果是否相同来尽可能避免重新编译,即使上游依赖项已更改。
这种情况可以这样说明:如果类 MyApp
和 NumberUtils
位于不同的项目中,并且 MyApp
的项目在编译时依赖于 NumberUtils
的项目,那么对 NumberUtils
的任何内部更改都不需要重新编译 MyApp
的项目。在更改前后,MyApp
都编译为相同的字节码,因此 Gradle 可以继续使用它已经构建的 MyApp.class
文件。
❯ 阅读更多
ℹ️ 2024 年 7 月 15 日更新 |
有关插件门户和 JCenter 的最新信息,请参阅 我们最近的博客文章。 |
2023 年 6 月 23 日 UTC 时间 9:00,由于 JFrog 对 JCenter 上托管的工件进行了更改,Gradle 用户开始遇到从 Gradle 插件门户解析工件的问题。JCenter 停止直接提供文件并将所有请求重定向到 Maven Central。这是一个未宣布的更改。
我们联系了 JFrog,他们回复说这是一次测试,他们将恢复到让 JCenter 提供工件。
UTC 时间 18:30 左右,JCenter 恢复正常行为。
这篇文章描述了这次中断对构建的影响,从类似中断中恢复的方法,...
❯ 阅读更多
Gradle 的 Kotlin DSL 在 2016 年 8 月的 Gradle 构建工具 3.0 版本中引入,并在 Gradle 5.0 中作为 1.0 版本发布。从那时起,它越来越受欢迎,并极大地改善了许多 Gradle 构建的编写体验。
Kotlin DSL 现在是新 Gradle 构建的默认选择。这意味着,当使用 Gradle 创建新项目时,包括在 IntelliJ IDEA(从 2023.1 开始)和 Android Studio(从 Giraffe 开始)中,Kotlin DSL 是默认选项。对于现有项目或喜欢使用 Groovy DSL 的用户,将继续支持 Groovy DSL。
在这篇文章中,我们将探讨 Kotlin DSL 的优势以及为什么它正在成为新 Gradle 的推荐选项……
❯ 阅读更多
先前在Gradle 工作原理中
- Gradle 工作原理第 1 部分 - 启动
- Gradle 工作原理第 2 部分 - Daemon 内部
这是 Gradle 工作原理系列的第三篇博客。在这篇博客中,我们将解释在构建脚本执行期间会发生什么。
Kotlin 和 Groovy DSL
如果您是 Java 开发人员,当您打开任何 Gradle 构建脚本(例如 build.gradle.kts
或 build.gradle
)时,第一件可能会让您感到困惑的事情是花括号的特殊语法
// Kotlin DSL: plugins { id("some.plugin") version "0.0.1" } // or Groovy DSL: plugins { id "some.plugin" version "0.0.1" }
这是什么?当 Gradle 执行这些类型的脚本时会发生什么?
...
❯ 阅读更多
先前在Gradle 工作原理中
- Gradle 工作原理第 1 部分 - 启动
这是 Gradle 工作原理系列的第二篇博客。在这篇博客中,我们将解释 Gradle Daemon JVM
内部会发生什么。
为什么我们需要 Gradle Daemon?
在 上一篇博客中,我们提到 Gradle 启动了一个 Gradle Daemon JVM
(“daemon”)来运行构建。《用户指南》解释了为什么我们需要 daemon。
Daemon 是一个长期存在的后台进程,可减少运行构建所需的时间。Daemon 通过以下方式减少构建时间
这是 Gradle 工作原理系列的第一篇博客,其中包括以下主题
- Gradle 如何启动
- Gradle 构建中涉及多少个 JVM
- 构建期间每个 JVM 中会发生什么
我们将在这篇博客中解释第一个主题Gradle 如何启动。在继续阅读之前,我们假设您熟悉基本的 JVM/Gradle 概念(jar、classpath、wrapper、daemon、项目、任务等)。
Gradle 如何启动
启动 Gradle 构建有很多方法
- CLI 中的本地 Gradle 发行版:
/path/to/local/distribution/bin/gradle <SomeTask>
- CLI 中的 Gradle Wrapper:
./gradlew <SomeTask>
- 单击 IDE 中的按钮以导入 Gradle 项目或运行一些测试/任务
有什么区别?什么……
❯ 阅读更多
Gradle 构建工具是一个开源项目,但许多设计工作的可见性并不高。在内部,我们使用设计规范来协作开发新的 Gradle 功能。为了使我们的开发过程更加开放和透明,我们的设计规范已通过 Google Drive 文件夹公开提供。
这仍然是一项正在进行中的工作,并且会随着时间的推移添加新文档。我们欢迎社区成员查看。您可以对所有仍在进行中的文档进行评论和提供反馈。我们计划使用这些文档来帮助指导新的社区贡献。欢迎在 GitHub 中链接到这些文档或与他人分享。
连同 公共路线图,我们希望……
❯ 阅读更多
我们最近注意到一些社区在讨论通过忽略不影响依赖项 ABI 的更改来加速 JVM 上 Gradle 编译的速度。真是个好主意!事实上,Gradle 自 3.4 版本以来就开箱即用地为 Java 使用了 ABI,而无需任何额外的配置。我们将此功能称为避免编译。这篇文章解释了基于 ABI 的编译对于平均工作流程的意义。剧透:利用避免编译是任何构建的最佳性能增强功能之一。
什么是应用程序二进制接口?
应用程序二进制接口 (ABI) 是从编译定义内部和外部交互的软件生成的接口。ABI 表示在编译时对使用者可见的内容。当编译一个……
❯ 阅读更多
测试不稳定性是自动化测试的主要挑战之一。尽管 Gradle 的重点是提高开发人员的生产力,但 Gradle 本身的发展也受到不稳定自动化测试的困扰。这篇博客解释了在开发 Gradle 时的一些最佳实践,这些实践在我们多年与不稳定测试作斗争的过程中已被证明是有效的。
故事
像许多其他项目一样,Gradle 的每次提交都必须通过数万个自动化测试。任何微小的不稳定性都可能导致开发人员生产力下降。当我 5 年前加入 Gradle 时,CI 充满了不稳定的测试失败 - 人们会一遍又一遍地重新运行构建,希望足够幸运地获得绿色构建。
后来,我们成立了一个专门的开发人员生产力团队来处理……
❯ 阅读更多
在 GitHub Actions 上运行 Gradle 构建
GitHub Actions 为 GitHub 上托管的项目提供了一个方便而强大的 CI 平台。为了增强在 GitHub Actions 上构建 Gradle 项目的体验,Gradle 团队开发了 gradle-build-action
。 gradle-build-action
与 Gradle Build Scans™ 一起,提供了 Gradle 和 GitHub Actions 之间的深度集成,在您使用 GitHub Actions 构建和测试 Gradle 项目时,提供更轻松的设置和更好的体验。
gradle-build-action
是在 GitHub Actions 中运行 Gradle 构建的官方支持方式,它负责为您的 GitHub Actions 工作流程准备和优化 Gradle。当应用于工作流程时,所有后续的 Gradle 调用都将得到优化,使您可以简单地运行……
❯ 阅读更多
将 Gradle 插件发布到 门户网站的配置是在 Plugin-Publish 插件的帮助下完成的。最近发布的插件 1.0.0 版本通过具有更强的意见和更直接的配置,显着改进了该过程。
更强的约定
Gradle 插件开发历史悠久,并且逐渐发展为使用辅助插件来帮助您设置插件项目。最重要的插件
Plugin-Publish 插件也经历了这段悠久的历史,最终支持了辅助插件的各种组合。这导致了发布插件的方式太多,配置选项也太多,……
❯ 阅读更多
远程和分布式构建模式文章解释了远程和分布式构建之间的差异以及每种构建的变体。具体来说,我们区分了“测试分发”和“通用构建分发”。
本文从更广泛的角度讨论了分布式构建,以改善构建反馈时间。我们将首先解释工程师倾向于进行的更改类型,确定典型的瓶颈,并分享这些瓶颈与分布式构建的关系。我们还将研究通用构建分发的性能潜力。最后,我们将探索一种改进构建反馈时间的整体方法。
在下面的更详细的介绍中,我们将详细阐述这三个发现
- 以分布式方式构建不能替代经过良好调整的构建过程。
- 提高增量构建性能,而不是……
❯ 阅读更多
Gradle 构建工具的一个经常被请求的功能是执行远程或分布式构建的能力。但这到底是什么意思?请求背后的动机是什么?这篇文章将探讨远程构建与分布式构建之间的差异及其变体。由于行业内对于这些概念的统一术语尚无共识,因此本文的目标是概述这些模式以及它们之间的相互关系。
除了两个特定于 JVM 的参考之外,这些观察结果通常适用于使用任何语言或生态系统的软件项目。
但是为什么?
通常在缩短本地开发人员机器上的构建时间的背景下讨论这些功能。延长的构建周转时间会阻碍两者的生产力……
❯ 阅读更多
技术世界缺乏多样性是一个长期存在的普遍问题。例如,2021 年全球软件开发人员调查显示,女性软件开发人员仅占人口的 5%。这是我们需要改变的事情。
为了帮助促进我们行业的多样性,Gradle 很高兴宣布一项新的指导计划。该计划向所有人开放,但我们将优先考虑来自代表性不足的开发人员社区的学员,包括希望从 Gradle 构建工具社区成员那里获得支持和增强职业发展的女性以及黑人和西班牙裔个人。该计划中的学员将有机会就使用 Gradle 构建工具、构建自动化、开发人员生产力等进行个性化讨论。
我们的成员……
❯ 阅读更多
我们很高兴地宣布 Gradle 构建工具路线图现已公开。请参阅路线图板和相关的 readme。
动机
Gradle 构建工具项目定期发布包含新功能和错误修复的新版本。到目前为止,我们与用户社区分享计划和获取反馈的主要沟通渠道是发行说明、博客、问题跟踪器、论坛和 社区 Slack。但是,我们缺乏对即将发布的版本中计划内容的总体概述。
关于路线图
今天,我们宣布我们在 GitHub 上托管的新 路线图板。它列出了主要项目和面向用户的功能,按季度和目标版本组织。
该板还显示了过去的……
❯ 阅读更多
2022 年 1 月 12 日,由于插件门户依赖 JCenter 的部分功能中断,Gradle 用户在从 Gradle 插件门户解析插件时遇到问题。
这份事后分析报告给出了中断的时间线,描述了对 Gradle 用户的影响,以及为进一步减少 Gradle 插件门户对 JCenter 的依赖所采取的措施。
最后,我们还将讨论您如何保护您的构建免受此类中断的影响。
受 JCenter 中断影响项目依赖项的用户还应参考我们关于 JCenter 关闭的 原始博客文章。
中断时间线
- UTC 时间下午 4:30,1 月 12 日 中断开始
- Gradle 用户开始注意到插件解析在构建中失败。
- UTC 时间下午 4:56,……
❯ 阅读更多
新的 Gradle 插件在获得批准发布到 插件门户之前,会经过人工检查。现在,大多数执行的检查都已完全自动化,以减少插件作者的等待时间并降低人为错误的风险。这篇博客文章描述了影响社区插件作者的新自动化,并解释了它对于生态系统安全的重要性。
插件发布安全性
Gradle 的首要任务之一是降低供应链攻击的风险。这种阴险的攻击可能具有非常大的规模和影响。例如,一个恶意社区插件可能会感染大量使用 Gradle 构建的软件系统。您可以阅读更多关于此类攻击的信息以及……
❯ 阅读更多
ℹ️ 2024 年 7 月 15 日更新 |
有关插件门户和 JCenter 的最新信息,请参阅 我们最近的博客文章。 |
2021 年 2 月 3 日,JFrog 宣布他们将关闭 Bintray 和 JCenter。这篇文章告诉您需要了解和做些什么来避免中断您的构建管道。
您的构建可能会以多种方式受到此次关闭的影响
社区对于每个开源项目的成功都至关重要。在 Gradle,我们非常幸运能够为由用户、拥护者和插件作者组成的优秀社区提供服务并与之合作。
一些社区成员竭尽全力帮助其他用户取得成功。我们非常感谢他们的奉献精神。他们对社区的宝贵贡献包括在 Gradle 论坛和 社区 Slack 上帮助他人,发布博客文章以及在会议和用户组中进行演讲。
我们很高兴推出 Gradle 奖学金计划,以表彰和联系这些人,并发展这个全球 Gradle 专家社区,以帮助更广泛的 Gradle 社区提高生产力。
我们将通过提供额外的……来支持 Gradle Fellows 的努力。
❯ 阅读更多
介绍
Gradle 已成为 JVM 生态系统(包括 Kotlin)中项目的首选构建工具。它是最受欢迎的构建……
❯ 阅读更多
Gradle 最大的成功因素之一是它的社区。每天都有用户提出新功能、发现和重现缺陷或打开包含贡献的拉取请求。我们感谢用户创建的每一个问题。谢谢!
在一个像 Gradle 这样成功的项目上工作会带来挑战,无论是问题和贡献的数量,还是决定哪个方面对团队来说具有最高的优先级。即使我们不愿意接受,我们也没有无限的能力。我们希望我们的团队能够专注于为我们的用户创造最大的价值。这意味着修复正确的错误并实施最佳的功能。考虑到我们社区的多样性,这……
❯ 阅读更多
Gradle 6.0 是多年来依赖管理创新改进的顶峰。Gradle 秉承软件组合和重用不仅仅是将一组 jar 文件放在类路径上的理念,现在提供了一种新的元数据格式,可以丰富地定义软件组件,这些组件通常由多个文件、不同的变体以及对其依赖项的特定约束组成。
特别是,在本次网络广播中,开发人员倡导者 Jenn Strater 和 Gradle 工程师 Jendrik Johannes 讨论了
- 依赖管理中的新功能
- Java、Groovy 和 Scala 工具链改进
- 插件作者的新功能
您可以访问幻灯片……
❯ 阅读更多
最近,我正在帮助一个 Android 团队调查一个难以重现的问题,该问题表现为运行时间非常长的编译和注释处理任务。他们的大多数构建仅需几分钟即可运行,但有时需要长达 30 分钟!在这些情况下,构建扫描总是显示 Java 编译、Kotlin 编译或使用 Kapt 进行注释处理的某种组合是罪魁祸首。该团队不清楚开发人员遇到此问题的频率以及在什么条件下遇到此问题。
Gradle Enterprise 尚无法提供一种基于特定任务花费的时间来查找构建的方法。但是,自定义标签可以轻松地对构建进行分类并查找满足在构建中可以检测到的任何条件的构建。通过……
❯ 阅读更多
自 2017 年年中发布 4.0 版本以来,Gradle 发生了很大变化。
Gradle 5.0 比以前版本的 Gradle 快得多,内存效率更高,具有更好的工具来检查和管理传递依赖项,并且可以通过新的 Kotlin DSL 提供您一直希望和期望的 IDE 帮助。
这个 1 小时的网络广播演示了 Gradle 5.0 的 4 个关键主题
Gradle 的 Kotlin DSL 的作用以及谁应该采用它 如何充分利用增量编译和注释处理 为什么选择了意外的依赖项版本 X 以及如何修复它 Gradle 5.0 中有哪些新的任务 API 如果您只喜欢信息,请查看 Gradle 5.0 亮点页面以及……
❯ 阅读更多
Gradle 正在更新提交到 Gradle 插件门户的插件的插件批准政策,自今日起生效,开始为插件消费者添加更强大的安全保障。
首先,这不会影响已经位于插件门户上的插件,只会影响新插件。使用插件的 Gradle 构建不会受到任何影响。
门户接受标准简述
Gradle 将检查提交到 plugins.gradle.org 的新插件的以下内容
- 描述和项目 URL 有效且不具误导性
- 组 ID 和工件 ID 有效且不具误导性
除了这些更改之外,具有有效开源存储库 URL 的插件将在批准时优先于其他插件。那些正确应用 SPDX 兼容许可证的插件,甚至……
❯ 阅读更多
Gradle 构建脚本示例现在在 Gradle 5.0 文档和许多 Gradle 指南中都有 Kotlin DSL 代码片段以及 Groovy 代码片段。
我们希望您能够在您的 README 和基于 Web 的文档中显示两种 DSL,因此这篇文章展示了您可以在 GitHub 和 您的网站上以多种语言显示示例的方法。
GitHub 上的 Groovy 和 Kotlin DSL 示例
很难找到没有 README.md
或 README.adoc
的 OSS 项目。尽管没有太多方法使这些 README 页面具有交互性,但我们可以使用 <details>
和 <summary>
HTML……
❯ 阅读更多
这篇文章介绍了一个名为 Exemplar 的新库。Exemplar 的目标是确保用户获得您期望看到的输出。它处理示例发现、规范化(语义上等效的结果,可能来自不同的环境)和灵活的输出验证。它调用环境中要调用的任何命令行工具。例如,您还可以调用 curl
来验证服务 API 响应。
Gradle 使用此库来验证文档和指南中的示例,并从集成测试中删除样板代码。
可以使用 JUnit 测试运行器(推荐)或使用其 API 配置 Exemplar。请参阅下面的示例以及 Exemplar GitHub 存储库中的示例。

Exemplar 的用例
重要的是……
❯ 阅读更多
测试通常是您开发过程中运行时间最长的操作。不必要地运行它们是最终的时间浪费。Gradle 通过其 构建缓存 和 增量构建 功能帮助您避免这种成本。它知道您的任何测试输入(例如您的代码、您的依赖项或系统属性)何时发生更改。如果一切保持不变,Gradle 将跳过测试运行,从而为您节省大量时间。
所以你可以想象当我看到像 StackOverflow 这样的代码片段时我的绝望
tasks.withType(Test) { outputs.upToDateWhen { false } }
让我们谈谈这意味着什么以及为什么它很糟糕...
❯ 阅读更多
Maven Central 和 Bintray 已宣布他们将停止对 TLS v1.1 及更低版本的支持。如果您受到影响,以下是您需要了解的有关更正 Gradle 构建的信息。
如果您使用的是 Java 6 或 7 以及 Gradle 2.1 到 4.8 版本,则需要采取措施。
如何检查您是否受到影响
在收到错误消息“Could not resolve [coordinates]”之后,您可能已经从构建中收到以下错误之一
Received fatal alert: protocol_version
或
peer not authenticated
❯ 阅读更多
构建缓存 允许 Gradle 重用任何先前的调用(包括来自其他机器的调用)的任务输出。Kotlin 1.2.21 允许 Kotlin 项目使用构建缓存。
构建缓存的工作原理是将编译后的类、测试输出和其他构建工件存储在缓存中,同时考虑所有任务输入,包括输入文件内容、相关类路径和任务配置。

这通常会导致更快的构建。以下图表显示了 Gradle CI 部分使用和不使用构建缓存的聚合构建时间

在这篇文章中,我们将解释如何使用 Gradle 的构建缓存来避免不必要的 Kotlin 编译...
❯ 阅读更多
随着 Java 9 的发布,Java 运行时出现了一个名为多版本 jar 的新功能。对于我们在 Gradle 的人来说,这可能是该平台最具争议的附加功能之一。TL/DR,我们认为这是对实际问题的错误答案。这篇文章将解释我们为什么这么认为,但也解释了如果您真的想要,如何构建这样的 jar。
多版本 JAR,又名 MRJAR,是 Java 平台的一项新功能,包含在 Java 9 JDK 中。在这篇文章中,我们将详细阐述采用这项技术的重大风险,并提供如何在需要时使用 Gradle 生成和使用多版本 JAR。
简而言之,多版本 jar 允许您打包同一类的多个版本,以供不同的运行时使用。例如,如果您在 JDK 8 上运行,Java 运行时将使用该类的 Java 8 版本,但如果您在 Java 9 上运行,它将使用 Java 9 特定的实现。类似地,如果为即将发布的 Java 10 版本构建了一个版本,那么运行时将使用它而不是 Java 9 和默认(Java 8)版本。
❯ 阅读更多
这篇文章概述了 Gradle 的 Java 9 支持,涉及运行时、交叉编译、MRJAR 和 Jigsaw 模块支持。自从上个月 Java 9 发布以来,我们收到了很多问题,并决定最好在这里回答。
Gradle 4.2.1 版本支持的内容
截至 Gradle 4.2.1,完全支持使用主要 JDK 9 发行版(如 Oracle JDK9、OpenJDK9 和 Azul JDK9)构建和运行 Java 应用程序。此外,还支持交叉编译(由 JDK9 构建但在 JDK8 上运行)。
升级到 Java 9 时,某些构建会中断,无论使用何种构建工具。Java 团队对 JDK 进行了良好且必要的更改,以促进更好的软件架构和安全性,但这意味着取消了对某些 API 的访问。即使您的项目已准备就绪,某些工具和 Gradle 插件尚未更新以与 Java 9 一起使用。
没有用于使用和组装多版本 JAR 的便捷方法,但如果您想使用它们,可以查看这个 MRJAR-gradle 示例。
❯ 阅读更多
五个月前,我们宣布了 Gradle Script Kotlin 的第一个预发布版本,我们认为现在是回顾我们自那时以来取得的进展的好时机。在那段时间里,我们又发布了八个预发布版本,通往 1.0 的道路每天都变得更加清晰。那么,让我们看看我们到目前为止已经走过的路程以及我们未来的方向,好吗?
v0.1.0
您可能还记得,这是我们的 hello-world
示例在我们第一次发布时的样子
import org.gradle.api.plugins.*
import org.gradle.script.lang.kotlin.*
apply<ApplicationPlugin>()
configure<ApplicationPluginConvention> {
mainClassName = "samples.HelloWorld"
}
repositories {
jcenter()
}
dependencies {
"testCompile"("junit:junit:4.12")
}
❯ 阅读更多
自成立以来,Gradle 一直是一个开源项目,但作为一个团队,我们并非总是遵循现代开源协作的精神。例如,我们没有让人们容易地了解我们正在做的事情,我们也没有为用户提交功能请求或针对适当的问题跟踪器提交错误提供清晰简单的流程。
我们非常高兴地宣布,所有这一切都在今天发生变化。我们已经在 Gradle 存储库上开放了 GitHub Issues,接下来是我们正在进行的立即、中期和长期更改,以将 Gradle 社区的需求放在首位和中心位置!
❯ 阅读更多
欢迎来到新的 Gradle 博客。我谨代表整个团队,很高兴写下这第一篇文章,并分享一些我们正在做的事情。
主要地,我们正在建立这个新博客,因为我们想确保用户了解 Gradle 领域最重要的发展。我们的团队在过去几年中快速发展,因此我们发布了许多新功能和改进。然而,我们常常发现潜在用户从未听说过它们。最近的这条推文提供了一个完美的例子
Cristian 的问题很公平。我们在一年前首次发布了 Play 支持;我们在 Gradle 2.6 论坛公告 和 发行说明 中提到了它,并且我们在用户手册中 写了一个关于它的章节。尽管如此,Cristian——可能还有许多其他人——错过了它。这是怎么回事?
❯ 阅读更多
面向 Gradle 3.0 的第一个里程碑版本 刚刚发布,在许多较小的改进中,它包含两个主要功能,我们希望获得您的反馈。
第一个功能是支持用 Kotlin 编写 Gradle 构建脚本,您可以在上个月的 Kotlin meets Gradle 博客文章中阅读有关它的所有信息。虽然仍处于开发的早期阶段,但此功能现在已在 Gradle 3.0 M1 中开箱即用,我们很想听听您的想法。有关完整详细信息和入门说明,请参阅Gradle Script Kotlin 0.1.0 发行说明。
第二个功能是Gradle Daemon 现在默认启用。这是一个大问题,我...
❯ 阅读更多