为Delphi + Oracle构建自动化工具

4
在我的工作中,我们目前正在寻找一款自动化构建工具。我们已经进行了相当多的谷歌搜索,但是有太多的选择,我们不确定哪个工具是最佳选择,说实话。
我们甚至不确定是否有符合我们需求的工具。它应该具备以下尽可能多的功能:
1.与Subversion集成,这意味着它应该能够执行更新和提交操作。 2.Diff工具或与之集成的能力,并且具有自动合并文件的能力(至少不是问题文件)。 3.使用命令行编译器的Delphi构建自动化。 4.与Oracle集成,意味着具有运行SQL脚本和编译PL/SQL包、函数等的能力。 5.发送带有构建状态的电子邮件(我猜这是所有工具都具备的功能)。
额外的功能将受到欢迎,但目前并不需要。任何符合至少1和2两点要求的工具都很好。
如果有人能指引我们一些特定的工具,我们将非常感激。
提前致谢并致以最好的问候。

1
合并发生在开发人员更新和提交时 - 构建工具不应更改文件,而应尝试构建正确的文件集。 SQL*Plus非常强大,只要您能够使用正确的环境和参数运行命令行工具,就可以做很多事情。 - user160694
@ldsandon:标记一个Subversion仓库可能是一个可以接受的自动化构建场景。 - Conor Boyd
标记不会修改文件。在某些情况下,构建系统可能会修改文件(例如插入构建号),但在我看来,这些文件不应该与开发人员的更改合并,否则如果出现冲突,则自动化系统将无法解决问题。构建应该由开发人员中断,而不是由构建系统本身 :) - user160694
@Idsandon:这个想法是以某种方式告诉构建工具应该将哪些提交合并到构建中。我已经为我们的应用程序合并文件很长时间了,除了半打特殊情况外,通常很容易但耗时。 - Guillem Vicens
6个回答

9
对于我的Delphi项目,我过去一直在使用FinalBuilder(它本身是一个Delphi应用程序)。我一直非常满意这个产品,而且它的表现非常好。
同时,他们还推出了一个构建工具的服务器版,因此您可以设置一个完整的构建服务器,并在那里构建您的代码。
在那些日子里,另一个值得考虑的竞争者是Visual Build - 从功能到功能,这两个竞品几乎相匹配,但在我个人看来,Finalbuilder的“感觉”和易用性更好。
我不确定这两个竞品是否具有直接和特定的Oracle支持,但至少Finalbuilder可以运行任何可以从命令行运行的东西,因此这应该会给您提供充足的选择。

1
FinalBuilder再加1分。太棒了!现在我无法想象没有它该怎么工作。这是一家非常好的公司。开发人员活跃于澳大利亚Delphi社区,并且非常快速地提供支持。 - lukeck
很遗憾看到DUnit仍然不在他们支持的xUnit框架列表中... - mjn
在得到这么多积极的回答后,我们一定会更加仔细地研究FinalBuilder。 :-) - Guillem Vicens
@mjustin 我不知道这件事。我们的FinalBuilder自动构建已经运行我们的DUnit测试应用程序几年了。 - lukeck
@Luke:也许FinalBuilder无意中支持DUnit :) - mjn

4

我一直使用CruiseControl.NET作为我们Delphi构建的持续集成服务器,它与NAnt作为构建脚本语言相当契合。

忘记CC.NET,仅使用NAnt将提供您需要的大部分/全部内容,我认为。

结合额外的NAnt-Contrib库中的额外任务,我已经实现了除Oracle集成之外的所有内容。但是,您可以轻松地从NAnt脚本内部调用命令行内容,或者使用任何.NET语言编写自己的NAnt任务。

NAnt具有与Subversion集成的任务,或者您可以简单地调用svn命令行客户端。

我已从我的NAnt脚本中调用BeyondCompare作为差异工具,使用NAnt发送自定义HTML电子邮件并执行Installshield构建,以及显然执行命令行Delphi编译器和资源编译器。

NAnt是免费开源的,值得一试。


+1 for Beyond Compare。这个软件太好用了,当我不能再使用工作副本时,我会用自己的钱购买一份个人使用版。这就是它有多好。 - mcottle

3

3

3
我们使用FinalBuilder来处理需求1、3、4和5,使用Beyond Compare来处理需求2,对这两个工具都非常满意。

2
我很惊讶没有人提到Hudson。大多数构建工具似乎都针对特定的语言或平台。Hudson采用不同的方法。它提供了一个插件架构,因此您可以创建一个适合您需求的构建服务器。该项目本身是用Java编写的,但完全自包含(当然除了依赖于JRE)。它使用自己内置的Web服务器来提供用户界面。
Embarcadero广泛使用Hudson,并有几篇很棒的文章可供参考。点击此处查看 如果您需要商业支持,原作者已经成立了一家公司,提供定制版本和技术支持。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接