Windows 上的 Hudson:Ant 文件和批处理文件哪个更好?
我有一些用于 CI 流程的 hudson 服务器。
构建任务使用 Ant 脚本和老式 *.bat 文件。
你更喜欢什么?有什么优点和缺点?
(我想到的是可读性、开发人员的熟悉度和可扩展性......)
还有其他选择吗?我们有 .Net、Java 和 PHP 应用程序可供测试。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Batch 是一种编程语言(而且不是一种很好的语言)。 Ant 是一种依赖矩阵语言。有什么区别?
在编程语言中,您指定一切发生的顺序。您有责任说明构建的内容和顺序。
在依赖关系矩阵语言中,您只需声明依赖关系,程序就会计算出要做什么以及完成的顺序。开发人员在使用 Ant 或 Make 时遇到的最大问题之一是尝试强制构建顺序,而不是让构建系统处理它。
构建应始终使用 Ant 等依赖矩阵语言来完成。
让 Ant 确定需要构建的内容以及构建的顺序。不要使用批处理。如果您使用 Batch 脚本按照您认为应该调用的顺序调用一堆 Ant 脚本,那么您就错了。让主 Ant 脚本执行此操作并使用
调用。让 Ant 来做一些棘手的事情。您可以使用批处理脚本进行初步工作(例如,如果 Ant 需要更多内存,则设置 ANT_OPTS ,或者设置 ANT_HOME 和 JAVA_HOME 等环境变量以及 %PATH% 变量,以确保您使用的是正确的Java 和 Ant 版本。在 Hudson 中,您可以在 Hudson 作业本身中设置所有这些,因此您不必调用 Batch 脚本。
Batch is a programming language (and not a very good one at that). Ant is a dependency matrix language. What's the difference?
In a programming language, you specify the order everything occurs in. You're responsible to say what is built and the order.
In a dependency matrix language, you merely state the dependencies, and the program figures out what to do and the order it should be done in. One of the biggest issues developers have with Ant or Make is to try to force a build order instead of letting the build system take care of it.
Builds should always be done with a dependency matrix language like Ant.
Let Ant determine what needs to be built and the order it should be built. Don't use Batch. If you're using Batch scripts to call a bunch of Ant script in the order you think they should be called, you're doing it wrong. Have a master Ant script do it and use
<subant>
calls. Let Ant do the tricky stuff.You can use batch script to do preliminary work (such as setting
ANT_OPTS
if Ant needs more memory, or setting environment variables like ANT_HOME and JAVA_HOME and your %PATH% variable to make sure you're using the correct Java and Ant versions. In Hudson, you can set all of this in the Hudson job itself, so you don't have to call the Batch script.*.bat 文件几乎限制您只能使用 dos/windows,就像 Linux 上的 shell 脚本一样,而 Ant/Maven 是跨平台的,您可以选择使用非 Windows CI 服务器
*.bat files pretty much restrict you to dos/windows, like how shell scripts are for linux, whereas Ant/Maven is cross-platform and gives you the option to use a non-Windows CI server