调试数周的构建可以节省学习数小时的学习gradle
#java #kotlin #android #gradle

您不配置 gradle,您程序 IT。

可以肯定的是,您可以在基于复制/粘贴的节目中生存,但是,我真的很讨厌!

ð¶当我只能复制/粘贴Groovy片段时,为什么要学习Gradle?

您不必学习Gradle,尤其是如果您刚开始,我认为值得花时间投资。

作为Android开发人员,您可能受过教育的教育,可以通过https://developer.android.com/build和Mided.com博客文章的复制/粘贴Groovy片段来“配置您的构建”。

您应该修复效果很好的方法

就是这样,我认为这种方法效果不佳,至少对我来说从来没有很好。

我知道我并不孤单:

我已经看到你们中的一些人花了太多时间,而不是必要的调试破裂的构建。不学习gradle所保留的时间远远超过了这个调试时间的浪费。

是2023

乔尔的步骤2到更好的代码

better code joel

好消息,Gradle被发明了,以使您的所有构建任务可在一步中执行。

这就是为什么我的理想README.md应该包含这种段落的原因:

" README.md

## Build tasks

./gradlew runUnitTests  # run fast unit tests that don't do side effects
./gradlew runAllTests   # run all tests
./gradlew runApp        # run unit tests, install and run the app
./gradlew buildProd     # build and sign production APK
./gradlew pr            # run the same checks than on GitHub Action

编程并不难...但是确实需要学习gradle。

,我的建议是一段时间以外学习Android外的Gradle。

ð7»“配置您的构建”

configure your build

我已经对Android文档的那部分私下bitch子,我看到人们没有理解我试图提出的观点。

他们告诉我医生看起来不错。它记录了人们需要开始的简单事物。您只需复制/粘贴您需要的地方即可。

我应该在哪里复制/粘贴?我不知道,如果您感到疯狂,也许在build.gradleapp/build.gradlesettings.gradle中。
也许它在android { }街区内,也许是在外面。
只需尝试一下,直到构建不会崩溃,您就可以了。

我有一个“ aha”的时刻,当我通过“简单事物”意识到我们的意思是不同的事情。

如果您有Gradle片段,则可以复制/粘贴,可以将其视为简单,即复制/粘贴很容易。甚至片段都是关于构建变体及其对所有事物的组合爆炸等不良设计的过度复杂功能的。

通过简单的事物, i 是指Gradle所基于的基本概念。

SettingsProjectPluginTaskActionConfiguration,...

配置您的build 部分 不教那些基本概念,因为它被卡在“配置”范式中。

的确,新的Android开发人员以这种方式开始是完全可以的。

我认为从长远来看这是一个错误,因为Gradle不是Maven

ð; gradle是您在Kotlin编程的Java API

Maven是一个基于配置的构建系统,其著名的pom.xml

gradle是不同的。
Gradle不仅仅是Android-就像Kotlin一样。
gradle是您编程的东西,而Maven是您配置的东西。
Gradle本质上比Maven或反面更好。春季提出了选项,许多项目都选择一个或另一个项目。
Gradle是用于构建各种项目的Java API,并且您可以在Kotlin进行编程。
gradle是gradle/wrapper/gradle-wrapper.jar

ð¶为什么gradle+kotlin?

Gradle是我们建立的Java API,因此,凭借JVM互操作性,您可以在Java,Groovy,Kotlin或所有这些混合物中编程Gradle。

您可以在Java编程Gradle,但这确实是冗长的。

我们传统上以Groovy编程Gradle,因为Groovy用DSL支持进行了创新,并且可以脚本进行脚本。但是,如果您想要适当的IDE支持,Gradle和Groovy在一起是恕我直言的坏主意。并不是因为单独的凹槽是可怕的,而是因为Groovy和Gradle在一起就像是可乐和Mentos。力量太多,责任太少。

发生的事情是,Groovy的动态性质与Gradle中所做的所有元编程以为我们提供了不良的工具支持。

这就是Gradle在5年前意识到的,以及与IDE和编译器支持的Jetbrains一起,他们开始了一个非常雄心勃勃的项目,以使Gradle Kotlin-First成为。

与此同时,Google做了……很长一段时间以来似乎都没有。
我的猜测是,这是一个被工作,技术债务和陷入“配置”心态的组合。

这是可以理解的,但是我觉得像对待Gradle一样,它不是 - 一个更好的恶作剧 - 您都没有得到任何好处。如果您想在适当的IDE支持下配置内容,则使用像pom.xml这样的文件格式,它总是会更快,更好地支持。

所以我可以免费修复Android文档吗?

不,绝对不是。

首先,我不确定他们是否想更改基于配置的方法。
与我在象牙塔中说服它们相比,我与我的时间有关。

第二次Google/Android是一项巨大而有利可图的垄断 - 如果您愿意的话,苹果公司的双头垄断。因此,我敢肯定,如果他们认为重要的话,他们有足够的钱来支付技术作家来做到这一点。

是的,要被录用,技术作家将不得不记住Google文档中的“编码访谈”书籍和植物红色/黑树。但这是另一天的话题。

我说的是这个

可以打开并了解Gradle Black Box以获取乐趣和利润。

您可以做得比复制/粘贴更好。

ð我的经验

对我来说,这是一次非常有趣的经历,我曾经讨厌Gradle,现在我是最受欢迎的Gradle插件的Louiscad的合着者。

{$%嵌入https://github.com/splitties/refreshVersions%}

  • 哦,但实际上Gradle很快!
  • 哦,但实际上Gradle的文档很好!
  • 哦,但实际上Gradle有很好的IDE支持!
  • 哦,但实际上就像编程任何Java API!
  • 哦,但是SettingsProjectPluginTaskAction等的基本概念实际上很简单!

•在Android之外学习Gradle的4种方法

我认为学习gradle的最简单方法是逃脱瞬间。

这是四种方法:

  • 使用Intellij
  • 创建一个超简单的Kotlin CLI客户端
  • 使用Intellij
  • 创建一个Kotlin多平台(非Android)项目
  • 使用https://start.spring.io创建一个春季启动项目
    • ,看看结果构建的直接。
  • 使用Intellij Ultimate创建一个KTOR项目

d插件Gradle是什么样的?

这是一个很好的问题,谢谢你的伪君子。

如果您很好奇,我建议您看看

  • 不是Android Gradle插件,因为它是一个巨大的节奏。
  • 甚至不是我自己的插件
  • 但是,在这个非常整洁的示例插件中,由Gradle编写的Kotlin,这以非常教学的方式解释了所有概念

Gradle Site Plugin Build Status Build Scan Maven Central

示例Gradle插件,演示了插件开发的既定技术和实践,如以下指南中所述:

功能

插件提供了生成一个派生有关项目信息的网页的任务,例如应用插件和可用任务。虽然简约的功能性,它是展示Gradle插件开发的最佳实践的展示案例。该项目生成的网站可以是viewed here

提示
该插件是available on the Gradle plugin portal用于公众消费

用法示例

可以通过标识符gradle.site应用插件。默认值可以在提供的扩展org.gradle.plugins.site.SitePluginExtension的帮助下配置。要生成网页运行名为generateSite的任务,例如gradle generateSiteHtml

重要
该插件需要4.0或更高版本的Gradle版本。所有功能

然后,您将这些知识带回您的Android

请将我的文章发送给需要它的朋友。

嗨,我是Jean-Michel Fayard.

在我的网站上,我有Careers Resources for Developers,如果还不够,您可以ask me a question