用Gradle思考!
自从我第一次遇到Gradle和Hans Dockter (TSSJS 2009在拉斯维加斯),我慢慢地(但肯定地)开始在许多地方使用这个新的构建工具环境和项目。
今天,我被迷住了,我不认为有更好的方法来构建!
但是,我遇到的主要问题是如何说服其他那Gradle这是好的方法吗?我花了很长时间才掌握窍门,更花了很长时间才理解汉斯说的意思:“重要的是模型!”.
我是这样描述我的“用Gradle思考!”
经过多年的Ant和Maven的洗脑,我需要了解的主要范式转变的力量Gradle是:Gradle让你写代码那创建构建的动态模型。
我不需要再考虑声明属性(Ant)或POM静态模型,而是需要一个可执行块的聚合(Groovy闭包),这将创建我的项目、任务、依赖项和产品的确切模型。hth华体会最新官方网站
我不需要“扩展”,我不需要“排除”,我不需要“覆盖”。
当使用构建模型的静态声明时,避免重复的方法是在超级POM中声明80%的模块是好的,然后为其他20%添加跳过或重复详细的插件配置。
在任何情况下,您都在重复很多事情,并且总是尝试更改代码或模块布局,以适应构建工具的较小阻力。
你的“静态”构建模型冻结了您重新组织模块的能力。
与Gradle,构建模型是从可执行的Groovy代码创建的。没什么,我真的的意思是没有什么是静态的.
这对新人来说是非常令人不安的。我需要我的属性,XML,声明
不!它只是代码,动态Groovy代码!
该模型将产生于Groovy集合的闭包(将此应用于任何匹配的模型元素),需要时使用一些“如果”,还有很多漂亮的东西gstring用于表示动态值。当您编写XML时,您不能保持静态XML的思想Gradle构建!
好吧,您可能认为动态部分只是POM层次结构和依赖关系的心理表征。
在Gradle中,执行任务图(Maven的每一个插件执行生命周期(它非常静态,修改起来简直是噩梦)也是动态的。
这意味着将执行的任务链接的方式也定义在代码,不是XML格式
当然,还有每个人都期待的部分:任务的执行块也是Groovy(或Java)代码。
结论
在我放弃静态任务依赖(Ant)和静态项目模型(Maven)的旧概念之前,我错过了大多数的美丽和强大Gradle!
希望这对其他人有所帮助。
