`
juvenshun
  • 浏览: 1595466 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

你最常用的构建和发布管理工具是什么?

阅读更多

最近Eclipse社区进行了一项调查,关注社区如何使用Eclipse和其它开源软件,目前调查的结果已经发布,详细的结果涵盖了IDE,操作系统,版本控制工具等等,具体可以查看这个链接:

 

http://www.eclipse.org/org/press-release/20090527_survey09.php

 

作为Maven的忠实用户,我自然比较关注构建工具这一块,这是我看到的报告:

 

 

这个图表本身有就有一些问题,持续集成工具如CruiseControl和Hudson与构建工具Maven和Ant本身是没有冲突的,它们是互补的。抛开这个不谈,我们可以看到Ant以33.3%的得票率远超得票率为18.0%的Maven。这当然是可以理解的,Maven和Ant相比还比较年轻。此外,该图中有一个Other(specify)项,我点击show replies后看到,其中有一大部分make,shell之类的纯脚本。当然,我们也看到21.7%的None,也就是说还有很大部分人完全不用构建工具。

 

这是Eclipse社区的调查,这里我可以简单的总结下,约1/3的人在使用Ant构建项目,约1/5的人在使用Maven构建项目,还有一小部分不到1/10的人在使用make和shell,约5/1的人不用任何工具构建项目。当然这还不完整,由于统计本身的缺陷我无法得知其它人用什么工具。不过总这个简单的结果我们已经能够清楚的看到一些现状,Ant作为成熟流行的java构建构建工具仍是主流,Maven作为新一代构建工具也得到了广泛的认可,还有一些古董在用Make/shell。而不借助工具执行纯手工构建还大有人在。

 

这份调查是不分国界的,其中中国参与人数为3.1%。我相信在中国,统计出来的数据结果肯定比这个数据差很多,可能不用任何构建工具的人会超过一半。虽然我很想了解,但我根本无从得知有百分之多少的人在用Maven。5%?呵呵,希望我的一些工作能帮助增加一两个百分点。

 

此外再扯一下持续集成工具,这里主要有CruiseControl,Hudson,和Bamboo。前两者是开源的,而Bamboo对于商业使用是要收费的,占用率低一点也可以理解。Hudson最为流行,用户为CruiseControl的两倍,这也能理解,毕竟易用性方面Hudson强很多。在自动化构建的基础上进行持续集成,是重要的敏捷实践之一。

 

总之,好的工具能助你事半功倍,有那么多优秀的开源工具,我们应该衷心感谢这些工具背后的程序员们。

15
3
分享到:
评论
6 楼 bill4j 2009-09-19  
woaiwofengkuang 写道
不明白为什么非要用ANT之类的工具呢。它的存在到底给我们带来了哪些好处。你用eclipse来开发项目。当创建好一个web工程时。你的的项目目录结构已经予定义好了。而剩下的工作就是划分包结构与加入所要使用的第三方jar包了。你要编译eclipse可以自己动帮你编译。你要发布到webserver eclipse同样可以帮你。
你ANT干嘛呢。实在是找不出非用它不可的理由。

那是因为你和我都一样,都做的是小项目,不需要每日构建,持续集成等,但还是可以用来做一些工作的,如进行数字签名、打包等。
5 楼 juvenshun 2009-09-17  
woaiwofengkuang 写道
不明白为什么非要用ANT之类的工具呢。它的存在到底给我们带来了哪些好处。你用eclipse来开发项目。当创建好一个web工程时。你的的项目目录结构已经予定义好了。而剩下的工作就是划分包结构与加入所要使用的第三方jar包了。你要编译eclipse可以自己动帮你编译。你要发布到webserver eclipse同样可以帮你。
你ANT干嘛呢。实在是找不出非用它不可的理由。

没有构建工具怎么做到自动化呢?一次又一次的点鼠标既费力又容易出错。没有自动化构建,又何谈持续集成?(如果你不知道持续集成,请查询相关资料)
4 楼 woaiwofengkuang 2009-09-17  
不明白为什么非要用ANT之类的工具呢。它的存在到底给我们带来了哪些好处。你用eclipse来开发项目。当创建好一个web工程时。你的的项目目录结构已经予定义好了。而剩下的工作就是划分包结构与加入所要使用的第三方jar包了。你要编译eclipse可以自己动帮你编译。你要发布到webserver eclipse同样可以帮你。
你ANT干嘛呢。实在是找不出非用它不可的理由。
3 楼 alanlyp 2009-09-15  
学习了,需要更多的传道者。
2 楼 popoer 2009-09-14  
老大,等着你的书哦!
1 楼 thinke365 2009-09-13  
顶老大。。。

相关推荐

    34个最常用的工具类

    以下是对"34个最常用的工具类"中可能包含的一些关键知识点的详细解析: 1. **字符串处理**: - `StringUtils`:这个类通常包含一系列处理字符串的方法,如检查空值、格式化、拼接、分割、替换等。 - `TextUtils`...

    常用、实用工具类

    5. **数据库管理工具**:如MySQL Workbench、PostgreSQL的pgAdmin和MongoDB的Robo 3T,它们帮助开发者轻松地进行数据库查询、设计和管理。 6. **调试器**:如Chrome DevTools(Web开发)和pdb(Python调试器),...

    打包构建工具gulp或grunt

    标题中的“打包构建工具gulp或grunt”指的是在前端开发中常用的自动化构建工具,它们能够帮助开发者简化项目构建过程,提高工作效率。这两个工具都是基于Node.js的,主要用于处理JavaScript项目,但也可以扩展到处理...

    Maven超级详细文档(依赖管理项目构建工具)

    Maven是Java领域中广泛使用的项目管理和构建工具,它通过提供一套标准的项目对象模型(Project Object Model,POM)和自动化构建生命周期来简化项目的构建、依赖管理和报告生成。本超级详细文档将深入探讨Maven的...

    03173软件开发工具自考知识点汇总-前6张

    2. **项目管理工具**:如JIRA、Trello、GitLab等,用于跟踪项目进度、任务分配和错误管理。这些工具帮助团队协作,确保项目按计划进行。 3. **版本控制系统**:Git是最常见的版本控制工具,它允许开发者追踪代码...

    ASP 房产中介网站系统SQL版 是一套适合房产中介机构使用的办公系统,并非是一个房源发布网站,以下是它的主要功能模块:公共资源管理、生产管理、销售系统、财务管理、考勤系统、工作计划、用户管理、系统信息、常用工具(常用网址, 万 年 历, 计 算 器)、信息交流与反愧文件操作等

    ASP 房产中介网站系统SQL版是一款专为房产中介行业设计的高效办公平台,它集成了多种实用功能,旨在优化中介公司的内部管理流程,提高工作效率。...对于房产中介行业来说,这是一款不可或缺的高效能管理工具。

    gulpauto自动构建工具

    在现代 Web 开发中,构建工具扮演着至关重要的角色,它们能够简化复杂的项目管理,优化代码,提高开发效率。`gulp-auto` 作为其中的一员,通过其强大的配置能力和灵活性,为开发者提供了自动化处理前端资源的能力。 ...

    25个常用工具

    6. **Jenkins**:持续集成/持续部署(CI/CD)工具,自动化构建、测试和发布流程。 7. **Trello**:项目管理工具,采用看板方式,适用于敏捷开发中的任务管理。 8. **Slack**:团队协作软件,整合沟通、文件共享、...

    开发必备,web常用小工具

    除此之外,还有许多其他实用的小工具,如在线的代码片段管理工具(如GitHub Gist)、颜色选择和配色工具(如Coolors)、前端性能检测工具(如Lighthouse)等,它们都是Web开发者日常工作中不可或缺的部分。...

    maven管理工具

    ** Maven管理工具详解 ** Maven是一个强大的Java项目管理和综合工具,它简化了构建、依赖管理和项目的生命周期。在Java开发领域,Maven几乎已经成为标准的构建工具,它通过使用一个项目对象模型(Project Object ...

    开发常用基本工具

    在开发过程中,使用Maven作为项目管理工具是非常常见的选择。Maven是一个强大的构建工具,可以帮助开发者自动管理项目的依赖关系、构建流程以及文档生成。在JavaCV项目中,通过在Maven的pom.xml文件中声明JavaCV的...

    工具箱(java开发中常用工具类,web工程中常用的Filter等).zip

    API管理工具则方便开发者创建、测试、发布和维护API接口。 持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与...

    构建自己的Java库

    这两个工具都提供了强大的依赖管理和构建生命周期管理功能。例如,通过Maven的`pom.xml`配置文件,我们可以声明库的依赖、版本信息、插件等,而Gradle则使用Groovy或Kotlin DSL进行配置。 2. **版本控制**:使用Git...

    新闻发布管理系统

    【新闻发布管理系统】是一种常见的Web应用程序,它主要用于在线发布、管理和更新新闻内容,是网站内容管理系统的组成部分。在北大青鸟的课程项目中,这个实战项目旨在帮助学生掌握实际的编程技能,尤其是Java语言在...

    OSGi常用服务发布和获取方式总结

    本文将深入探讨OSGi常用的服务发布和获取方式。 一、服务发布 1. **ServiceRegistration**: 当一个模块想要提供服务时,它会创建一个实现了所需接口的类,并使用`BundleContext`的`registerService()`方法来注册该...

    vs2013和vs2015常用的两个版本的cmake工具(3.6.1和3.11.3)

    CMake是一种跨平台的构建系统,它用于管理软件构建过程,尤其在多语言和多编译器环境中。本文将深入探讨VS2013和VS2015中常用的两个CMake版本:3.6.1和3.11.3,并分析它们的关键特性和应用场景。 首先,CMake 3.6.1...

    用到的java开发常用工具

    8. **SonarQube**: 代码质量管理工具,可进行静态代码分析,查找潜在的代码问题,如bug、漏洞、复杂度等,并提供持续集成的支持。 9. **IntelliJ IDEA的Alibaba Java Coding Guidelines插件**: 该插件根据阿里巴巴...

    包管理工具nuget

    综上所述,NuGet作为.NET的包管理工具,通过`nuget.exe`提供了强大的命令行功能,方便开发者进行包的管理和分发。结合Azure Artifacts,用户可以获得一个完整的包生命周期管理解决方案,从创建、测试到部署,都能在...

    maven 项目管理工具

    Apache Maven是一款强大的Java项目管理工具,它通过一套标准的项目对象模型(Project Object Model,POM)来管理项目构建、报告和依赖关系。Maven使得开发者能够轻松地配置和管理项目的构建过程,大大简化了软件开发...

    一个分布式常用工具组件

    本文将深入探讨“一个分布式常用工具组件”所涵盖的关键技术领域,包括分布式缓存、分布式序列号生成器、分布式锁以及分布式订阅发布系统。这些组件是构建大规模、高性能应用程序的基础。 **分布式缓存** 分布式...

Global site tag (gtag.js) - Google Analytics