用Gradle思考!

自从我第一次遇见Gradle和Hans Dockter (TSSJS 2009在拉斯维加斯),我慢慢地(但肯定地)开始在许多地方使用这个新的构建工具环境和项目。
今天,我被迷住了,我不认为有更好的方法来建立!
但是,我遇到的主要问题是如何说服其他Gradle这是一条好路吗?我花了很长时间才掌握了窍门,我花了更多的时间才明白汉斯所说的意思:“重要的是模型!”

我是这样描述我的“用Gradle思考!”

经过多年的Ant和Maven的洗脑,我需要理解的主要范式转变的力量GradleGradle能让你写代码吗创建构建的动态模型。
我需要停止考虑声明属性(Ant)或POM静态模型,而是考虑可执行块的聚合(Groovy闭包),它将创建我的项目、任务、依赖项和产品的确切模型。hth华体会最新官方网站
我不需要“扩展”,不需要“排除”,也不需要“覆盖”。
当使用构建模型的静态声明时,避免重复的方法是在超级POM中声明对80%的模块是好的,然后为其他20%添加跳过或重复详细的插件配置。
在任何情况下,您都在重复自己的工作,并且您总是尝试更改代码或模块布局以适应构建工具的较小阻力。

你的“静态”构建模型冻结了您按原样重新组织模块的能力。

Gradle,构建模型是从可执行的Groovy代码创建的。所以,没什么,我真的的意思是没有什么是静态的
这对新来的人来说是非常令人不安的。我需要我的属性,我的XML,我的声明
不!它只是代码,动态的Groovy代码!
该模型将从Groovy中出现集合的闭包(将此应用于任何匹配的模型元素),在需要时使用一些“if”,以及许多漂亮的gstring用于表示动态值。在编写XML时,不能一直考虑静态XMLGradle构建!

好吧,你可能认为动态部分只是你对POM层次结构和依赖关系的心理表征。
在Gradle中,执行任务图(Maven的每个小插件执行)生命周期(它是静态的,很难修改)也是动态的。
这意味着链接将要执行的任务的方式也定义在代码,而不是XML格式

当然,每个人都期望的部分是:任务的执行块也是在Groovy(或Java)代码中。

结论
在我放弃静态任务依赖关系(Ant)和静态项目模型(Maven)的旧概念之前,我错过了Gradle
希望这对其他人有所帮助。