![]() |
1
21
并非所有的Java开发都是通过Eclipse完成的,并不是所有的JAR都可以从命令行构建(或者应该从命令行构建)。 您可能需要另外运行测试用例、单元测试以及许多其他过程。 Ant所做的,是提供一种自动化所有这些工作的机制(因此您不必每次都这样做),并且您可能每天下午6点调用这个Ant脚本。 例如,在一些项目中,需要每天进行一次构建,下面是使用Ant自动化的任务,因此它们可以在不需要人工干预的情况下运行。
当然,对于其他项目来说,这是多余的,但是对于其他一些项目来说,这是非常有帮助的。 |
![]() |
2
16
rogeriopvl 是绝对正确的,但要回答您的“难道我不能通过单击运行来完成吗?->在Eclipse中运行?”问题:对于一个您自己正在处理的项目来说,这很好,而且不需要在多个环境中进行可重复的、可脚本化的构建。 但是,如果您正在开发一个开源项目,或者需要能够在构建服务器等上构建的专业软件,要求运行特定的IDE不是一个好主意。 |
![]() |
3
11
Ant用于自动化构建过程,但构建过程通常远不止编译。Ant有“任务”,可以用来执行各种有用的功能。您可以创建自己的任务来完成任何事情,通过编写Java类并告诉蚂蚁在哪里找到它。然后,您可以混合和匹配这些任务,以创建将执行一组任务的目标。 您还可以设置一个动态环境来构建应用程序。可以将属性文件设置为保存可在生成过程中使用的变量,即保存文件路径、类路径等。这对于区分部署路径、数据库实例等可能更改的测试和生产生成非常有用。Ant还包括流量控制(if等) 我见过蚂蚁做的一些事情:
|
![]() |
4
8
在许多大公司(可能还有一些小公司)中,您会发现生产代码 不是由开发它的人建造的 . 相反,开发人员可以将他们的代码签入源代码存储库并标记它。然后他们把这个标签交给一个构建团队。 构建团队在一个单独的(干净的)区域(可能在某个无头服务器(即没有GUI)上)将检查代码并运行构建脚本。生成脚本将 完全独立于桌面环境/IDE . 这确保了任何一个开发人员的计算机上发生的任何事情都不会“污染”构建。(或者,更可能的是,系统工作不需要任何外部源代码管理!) 所以你使用的大多数软件永远不会, 曾经 从开发人员的桌面构建。 另外,你可能还想看看 Continuous Integration |
![]() |
5
6
简而言之,Ant是创建一个完整的项目构建的好方法,它独立于任何开发人员可能使用的任何特定工具。如果没有一个独立的构建,事情会很快失控——特别是对于大型项目团队。 现在,对于长期的答案…我被带到几个项目中,没有任何独立构建的感觉。在一个项目中,有一个人不是负责构建和部署软件的开发人员。他创建了147个单独的Windows批处理文件来编译每个EJB、每个servlet和每个客户机组件。检查此生成时没有错误。所有日志消息(包括错误消息)都已转到标准输出。通过阅读日志,他可以手动识别哪个异常或消息是正常的,哪个消息是错误的。他还必须部署他刚构建的这个软件。部署同样复杂,因为有几个负载平衡层。每个模块必须手动放置在正确的位置,设置选项以匹配下游和上游层。使用这种方法构建和部署这个软件花费了他至少3天的时间。当然,只有这样,才能确定构建是否“有效”。通常,在这段时间之后,所有的程序员都会争相调试构建。程序员会说我的模块在我的IDE中工作正常。我就是这样点击“运行”,看到了吗? 实际上,各个软件模块通常都能正常工作,但是构建和部署却非常无效。同样糟糕的是,任何人都很难将构建部署到多个环境中。管理层会说,好吧,现在您可以在我们的回归测试环境中使用这个构建了。现在在另一个环境中部署相同的构建,这样销售人员就可以演示即将推出的软件。这应该很简单,但也需要至少2天,然后是“调试构建”阶段。构建和部署从来都不是简单的,也从来不是准确的。这真的减慢了项目的进度。 无论如何,我们用一个完整的基于Ant的构建和部署机制替换了整个过程。最终结果是,一个完整的构建可以在不到30分钟内创建和部署,完全自动化。负责构建和部署的QA人员可以保留一个白板,其中哪个环境部署了构建,哪个组使用了该环境。这是旧系统无法实现的。 |
![]() |
6
5
Ant用于自动化软件构建过程: |
![]() |
7
4
Ant允许清晰(完整、可重复、信息丰富、可调度、可移植)的构建。你可以在这里面找到关于它的很好的信息 presentation 麦克·克拉克在他的书中, Pragmatic Project Automation . |
![]() |
8
2
Ant是一个构建工具,类似于makefiles(尽管XML中的语法非常不同)。如果您只使用Eclipse,那么可以坚持这一点,并且始终可以将Ant构建文件转换为Eclipse项目(如果我记得正确的话,Eclipse的启动配置相当于Ant的构建目标)。 如果您希望部署应用程序的源代码并允许其他人轻松地构建或设置它,那么自动化使用Ant可能不是一个坏主意。但对于用户来说,这通常不是一个一致的体验,或者至少我还没有看到关于目标应该在哪里以及到目前为止做什么的共识。 Ant也可以用于常规的自动化构建(您不想每晚在Eclipse中运行,对吧?-) |
![]() |
9
2
如果有人靠近你,我想你会得到很多 CITCON 持续集成与测试会议。你可以和很多人谈论自动化应用于构建和测试软件的好处。 基本上,人们使用Ant(和其他工具)来自动化他们想要在提交之后发生的所有事情。这种自动化的基本优势是更快、更好和更便宜。 更快 因为事情很快就会发生,而不需要等待一个人去做。 更好 因为电脑真的很擅长每次做同样的事情。(人类倾向于吸吮它。) 更便宜的 因为你的错误更少,而且发生的错误会更快地被发现,因此修复起来更便宜。 |
![]() |
10
0
您还指的是“”。 Export ant buildfile “。 如果编写自己的Ant脚本来在Eclipse之外构建应用程序,则可以编写自己的目标,使用 Ant task 委托给生成的 编译文件 .
此外,还可以配置
项目“建设者”
(
|
![]() |
11
0
乔尔(斯波斯基)有 a great article 在“乔尔测试”中,他们中的许多人都围绕着能够经常、快速和可靠地做重要的事情。其中之一就是你的体型。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |