4

每当我注意到工作流程中的某些内容是重复任务时,我都会尝试将其自动化。

例如,在服务器上部署某些东西所需的步骤。它通常是一个构建,然后是一个scp,最后是一些远程设置脚本:

  1. mvn包
  2. scp 目标/foobar.jar 服务器:
  3. ssh 服务器安装-foobar
  4. ssh 服务器 './bin/foobar 重启'

在这种情况下,我倾向于编写一个小的 Makefile,它看起来像

  deploy:
      mvn package
      scp target/foobar.jar server:
      ssh server install-foobar
      ssh server './bin/foobar restart'

如何自动化您的工作流程?
Ant 是首选工具吗?有什么优点/缺点?

4

9 回答 9

2

对于 Java 开发,我会说 Ant 是默认选择。

临:

  • 好的文档,
  • 良好的 IDE 集成
  • 许多第三方扩展和工具

缺点:

  • 有点冗长(嗯,它还是另一种 XML 格式)
  • 有些事情应该很简单(例如任何类型的循环)

我真的没有任何使用makefile的经验,所以我不能说它们是如何比较的。也许您应该简单地使用您的开发人员更有经验的东西。

于 2008-12-28T14:58:04.573 回答
1

SCons是另一个不错的选择。Capistrano似乎很受好评,尽管我没有尝试过。

于 2008-12-28T14:58:45.447 回答
1

我使用 shell 和 perl 脚本

于 2008-12-28T15:03:05.983 回答
1

考虑 Gant(http://gant.codehaus.org/)。使用 Groovy 的构建器,它比 Ant 构建脚本更简洁

于 2008-12-28T15:04:47.010 回答
1

对于python,我倾向于将fabric 用于部署步骤,并将setuptools用于任何需要的构建(对我来说并不常见:-)

Fabric 了解如何将文件复制到服务器,在远程服务器上运行命令(作为标准用户和 root 用户)。

于 2009-02-06T13:02:07.347 回答
1

大多数构建系统如此复杂的原因之一是人们试图在其中做很多事情。有时用处理非编译/链接任务的驱动程序脚本来补充构建系统是一个不错的方法。没有单一的方法。如果没有看到项目源代码结构和所有需要完成的任务,很难回答这个问题。但是您可能想看看 Rake,因为它可以补充 Make、Ant 和 Maven

于 2011-05-05T05:41:14.700 回答
0

瑞克是我的选择。

于 2008-12-28T14:34:46.243 回答
0

我发现 Ant 和它的 XML 配置语法有点笨拙,有些东西应该是微不足道的,但在 Ant 中很难得到。我更喜欢那种自动化SCons

还有一个专门用来部署东西的工具,我用了一段时间,很酷,但我忘记了它的名字,也许其他人记得它:)。

于 2008-12-28T14:58:37.817 回答
0

我使用脚本(shell、perl、python)或 makefile。我不喜欢 Ant 和 SCons

于 2009-01-16T18:54:39.430 回答