当前位置:  开发笔记 > 编程语言 > 正文

什么是构建自动化软件(例如,Ant)?

如何解决《什么是构建自动化软件(例如,Ant)?》经验,为你挑选了6个好方法。

我看到很多蚂蚁的参考,但我不确切地知道它的意思是什么?从我听说它应该编译你的项目,但我不能通过点击运行 - >在日食中运行来做到这一点?

编辑:我想我应该改述我的问题.我已经知道ant是一个"构建自动化软件",我的问题是,构建自动化究竟是什么?我认为你应该测试你的应用程序,当它运行时,你点击eclipse中的'build'按钮或通过命令行java,它会生成一个.jar文件?那么为什么你需要"自动化"这个过程呢?



1> OscarRyz..:

我已经知道ant是一个"构建自动化软件",我的问题是,构建自动化究竟是什么?我认为你应该测试你的应用程序,当它运行时,你点击eclipse中的'build'按钮或通过命令行java,它会生成一个.jar文件?那么为什么你需要"自动化"这个过程呢?

并非所有Java开发都是通过eclipse完成的,并非所有jar都可以从命令行构建(或者应该从命令行构建).

您可能还需要运行测试用例,单元测试以及许多其他过程.

什么蚂蚁提供了一种机制来自动完成所有这些工作(所以你不必每次都这样做),也许你可以每天下午6点调用这个蚂蚁脚本.

例如,在某些项目中,需要每日构建,以下是可以使用ant自动执行的任务,因此它们可以在没有人为干预的情况下运行.

连接到subversion服务器.

使用最新版本下载/更新

编译应用程序

运行测试用例

包装应用程序(在罐子里,战争,耳朵或其他)

将此构建二进制文件提交给subversion.

在远程服务器中安装应用程序

重启服务器

发送包含作业摘要的电子邮件.

当然对于其他项目来说这是矫枉过正,但对其他一些项目来说非常有帮助.



2> Jon Skeet..:

rogeriopvl是绝对正确的,但回答你的问题"我不能通过点击Run->在Eclipse中运行来做到这一点吗?" 问题:这对于您自己开发的项目来说很好,并且在多个环境中不需要可重复的,可编写脚本的构建.

但是,如果您正在开发一个开源项目,或者需要能够在构建服务器上构建的专业软件等,那么需要运行特定的IDE并不是一个好主意.


扩大了一点.除非您是单个开发人员,否则在IDE中构建"生产"构建是一个坏主意.不同系统上的某个人可能有不同的PATH,jar,版本等.Ant提供了一个独立于系统的构建,通常包括单元测试,源标记等内容.

3> mtruesdell..:

Ant用于自动化构建过程,但构建过程通常不仅仅是编译过程.Ant具有可用于执行各种有用功能的"任务".你可以通过编写一个java类并告诉ant在哪里找到它来创建你自己的任务来做任何事情.然后,您可以混合并匹配这些任务,以创建将执行一组任务的目标.

您还可以设置动态环境来构建应用程序.您可以设置属性文件以保存可在构建过程中使用的变量,即保存文件路径,类路径等.这有助于区分部署路径,数据库实例等的测试和生产构建.可能会改变.Ant还包括流量控制(如果等)

我见过ant的一些事情:

编译代码

使用版本控制来签出最新版本或标记正在构建的版本

运行sql脚本以构建或重建测试数据库

从外部资源复制文件以包含在项目中

将代码捆绑成jar,war或ear文件

将Web应用程序部署到应用程序服务器

重启应用服务器

执行测试套件

静态分析,即CheckStyle或PMD

向团队发送电子邮件以提醒他们构建.

根据构建中的信息生成文件.

示例:我的应用程序中有一个jsp,它只显示版本/构建信息.它在我运行构建时由ant生成,生产操作团队在部署应用程序时检查此页面以确保它们已部署正确的构建.



4> oxbow_lakes..:

在许多大公司(可能还有一些较小的公司)中,您会发现生产代码不是由开发它的人构建的.相反,开发人员可以将他们的代码检查到源代码存储库并标记它.然后他们将此标记提供给构建团队.

构建团队在一个单独的(干净的)区域 - 可能在某个无头服务器上(即没有GUI) - 然后检查代码并运行构建脚本.构建脚本将完全独立于桌面环境/ IDE.

这可以确保任何一个开发人员的计算机上没有任何东西"污染"构建.(或者,更有可能的是,系统无需任何外部源控制!)

所以,你使用最多的软件将永远,永远地从开发人员的桌面上建立.

PS.您可能还想看看持续集成的想法



5> Gary..:

简而言之,Ant是一种创建完整项目构建的好方法,它独立于任何开发人员可能使用的任何特定工具.如果没有独立的构建,事情就会很快发生 - 特别是对于大型项目团队而言.

现在,对于长期的答案......我被带入了几个项目,没有任何独立构建的感觉.在一个项目中,有一个人不是开发人员,负责构建和部署软件.他创建了147个单独的Windows批处理文件来编译每个EJB,每个servlet和每个客户端组件.此构建没有错误检查.所有日志消息(包括错误消息)都标准化了.他可以通过读取此日志来手动识别打印的异常或消息是正常的以及哪条消息是错误的.他还必须部署他刚刚构建的这个软件.由于存在多个负载平衡层,因此部署同样复杂.必须手动将每个模块放置在正确的位置,并设置选项以匹配下游和上游层.使用此方法构建和部署此软件至少需要3天时间.当然,只有这样才能确定构建是否"有效".通常,在此期间之后,所有程序员都会争先恐后地调试构建.程序员会说我的模块在我的IDE中工作正常.我只需点击这样运行,看到了吗?

实际上,各个软件模块通常都可以工作,但构建和部署非常无效.同样糟糕的是,任何人都可以将构建部署到多个环境同样困难.管理层会说,好的,你现在可以在我们的回归测试环境中使用这个版本.现在在这个其他环境中部署相同的构建,以便销售人员可以演示和发布软件.这应该很简单,但也需要至少2天,然后是"调试构建"期间.构建和部署从未简单且​​永远不准确.它确实减缓了项目的速度.

无论如何,我们用完整的基于Ant的构建和部署机制替换了整个过程.最终结果是可以在不到30分钟的时间内创建和部署完整的构建,完全自动化.管理构建和部署的QA人员可以保留一个白板,其中包含哪个环境部署到哪个环境以及哪个组正在使用该环境.这是旧系统无法实现的.



6> rogeriopvl..:

Ant用于自动化软件构建过程:

http://en.wikipedia.org/wiki/Apache_Ant


当有人在维基百科上发布链接时,我讨厌它.难道你不觉得我在发布之前就已经检查过了吗?
@Click:不一定 - 在你原来的问题中肯定没有证据.根据标题的问题的答案是"自动化构建过程".鉴于"点击按钮"*不是*自动化,我无法看到这个答案以何种方式表现糟糕.
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有