当务之急VS声明构建系统(Imperative vs Declarative build syste

2019-08-17 01:09发布

使用摇篮为构建系统我最近已经开始。 他们首先比较的是摇篮与Ant和Maven这样的人做的是,蚂蚁是一种势在必行的构建系统,而Maven是一个声明构建系统。 虽然摇篮是没有Maven的执行的刚性声明构建系统。

我想了解这些条款声明必要 更好的时候,一谈到构建系统。

Answer 1:

总之,Ant脚本告诉Ant工具做什么 - “编译这些文件,然后将它们复制到该文件夹,然后利用这个文件夹的内容,并创建一个档案。”

虽然Maven的pom声明,我们希望能有作为的结果是什么 - “这里是项目取决于库的名称,我们想生成一个Web归档”。 行家知道如何获取库和在哪里可以找到它自己的源类。

虽然蚂蚁为您提供了更多的灵活性,这也迫使你不断推倒重来。

在另一边的Maven需要更少的配置,但可能会觉得太约束,特别是如果你使用一个不同的工作流程。

编辑:蚂蚁行家比较的一个重要方面是行家有一个惯例 ,描述将文件应该在于,其中的依赖性被发现,放在哪里得到的神器,而蚂蚁没有。

所以,你可以考虑使用像坐公共汽车行家的 - 你选择你进入停止并在您离开的人。 使用Ant是像驾驶汽车 - 你必须自己做。 你不必告诉公交车司机做什么,但停止可能是从那里你想去的地方太远。

EDIT2:“重新发明轮子”的比喻似乎比我所希望的那么清楚。 这就是我的意思是:

如果没有合理的默认值/约定,你必须明确地定义项目结构和构建生命周期的每个项目,往往使得它的口味和舆论的问题。 作为首选项的团队和公司有所不同,因此做的构建过程。 这需要新的项目成员,后来维护者更多的认知努力。 根据开发者的经验和专业知识,最终的解决方案可能很难扩展和使用。

正如我在下面留言说,虽然建立存在蚂蚁的最佳做法,他们仍然有对每一个项目得以实施,或从项目复制粘贴的项目,而不是成为出的现成的默认生成的工具本身。

Maven是一个位在权衡对我的口味的另一边太远。 更改默认设置并不容易,因为它可以和应该的。



文章来源: Imperative vs Declarative build systems
标签: maven ant gradle