Maven vs Ant用于Android应用程序中的自动构建

blu*_*nte 27 ant build-automation android maven

我正在评估是否使用Ant或Maven来自动化我的Android开发构建过程.我一直在尝试在线阅读以做出明智的决定,但没有发现许多与Android开发相关的细节.根据您的经验:

  • 有哪些主要区别?
  • 我读过一些人说他们有不同的目的吗?那是什么?
  • 什么会让你选择一个而不是另一个?
  • 每个的优点和缺点是什么?
  • 哪个更容易设置和维护?
  • 是否有社区提供/最常用的?

我发现了一个类似的问题Maven为构建android项目提供了什么好处(超过ant)?,但他问的是Maven对Ant的好处,首先,我甚至不知道Ant的好处,其次,他只得到了一个对我来说不清楚的答案.

我使用Intellij,以防它有任何区别但我希望它没有.

Dav*_* W. 13

如果您可以使用Maven,请使用Maven.并且,你不敢尝试改变标准目录!哎呀,即使我们使用Ant,我也坚持要设置像Maven这样的目录.这样,新开发人员就知道事情的位置,或者必须追踪build.xml事物的位置.其他的是,如果你使用Ant,你也应该使用常春藤.这样,您就可以在Ant中获得Maven依赖项处理.

具有讽刺意味的是,一旦我们使用Ant和Ivy,并坚持使用标准的Maven目录结构,从Ant迁移到Maven就很容易了.但是,在需要移动到Maven是太减轻.我们build.xml干净简单易懂.所有文件都在正确的位置.构建快速,简单且易于维护.谁需要Maven?

问题是,一旦我们达到Nirvana的状态,就是让项目不再回到新泽西州.开发人员开始在我们的网站中划分异常build.xml.不要编译此*.java文件.将它*.xml移到我们的java目录中,将测试代码放在main目录下,但是我们将把名字test放在文件中,所以我们知道它的测试代码......完成了新的复杂的事情.而且,不知何故,我们回到了锡考克斯.

所以,一旦我的Ant项目干净整洁,足以移动到Maven,我就实现了飞跃.

还有一件事:Maven使项目从一台计算机复制到另一台计算机变得非常非常简单.Maven处理所有依赖项 - 甚至是构建内容.不再需要AntContrib,或者需要下载hibernate Ant任务.如果你需要什么,它会自行下载.这是Maven在很多开源网站上如此受欢迎的重要原因之一.

我对Maven的抱怨是,它的记录很差.有一个Wiki,但几乎没有内容,也很少有手册.


And*_*ett 4

我最近在 Java 中没有太多使用 Ant 或 Maven,但我可以告诉您它们之间的主要区别 —— 它基本上可以归结为自动化约定 (Maven) 与绝对灵活性 (Ant)。

Maven 几乎可以为您做所有事情,但如果您根据它来安排您的项目,它会更容易使用。它将处理依赖项跟踪和解决、构建、打包和存储构建的包,同时还帮助分支维护和发布工程。我发现发布使用 Maven 构建的(flex)项目要容易得多。

Ant 更加灵活。您可以做任何您想做的事情,以任何您想要的方式构建。如果您有预先存在的项目,则可以自动化 IDE 正在执行的大部分操作,而无需更改其他任何内容。它不像 Maven 那样易于掌握,这也使得在出现问题时更容易诊断......不过,您需要自己处理依赖项、分支和版本。在我们使用 ant 的地方,我们使用它是因为我们设置了一个想要自动化的项目,而 Maven 无法适应它。如果你需要做一些 Maven 不支持的事情,Ant 可能是你唯一的希望。

就我个人而言,如果可能的话,我会使用 Maven 而不是 Ant,但我承认这并不总是可行。