最近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强很多。在自动化构建的基础上进行持续集成,是重要的敏捷实践之一。
总之,好的工具能助你事半功倍,有那么多优秀的开源工具,我们应该衷心感谢这些工具背后的程序员们。
分享到:
相关推荐
以下是对"34个最常用的工具类"中可能包含的一些关键知识点的详细解析: 1. **字符串处理**: - `StringUtils`:这个类通常包含一系列处理字符串的方法,如检查空值、格式化、拼接、分割、替换等。 - `TextUtils`...
5. **数据库管理工具**:如MySQL Workbench、PostgreSQL的pgAdmin和MongoDB的Robo 3T,它们帮助开发者轻松地进行数据库查询、设计和管理。 6. **调试器**:如Chrome DevTools(Web开发)和pdb(Python调试器),...
标题中的“打包构建工具gulp或grunt”指的是在前端开发中常用的自动化构建工具,它们能够帮助开发者简化项目构建过程,提高工作效率。这两个工具都是基于Node.js的,主要用于处理JavaScript项目,但也可以扩展到处理...
Maven是Java领域中广泛使用的项目管理和构建工具,它通过提供一套标准的项目对象模型(Project Object Model,POM)和自动化构建生命周期来简化项目的构建、依赖管理和报告生成。本超级详细文档将深入探讨Maven的...
2. **项目管理工具**:如JIRA、Trello、GitLab等,用于跟踪项目进度、任务分配和错误管理。这些工具帮助团队协作,确保项目按计划进行。 3. **版本控制系统**:Git是最常见的版本控制工具,它允许开发者追踪代码...
ASP 房产中介网站系统SQL版是一款专为房产中介行业设计的高效办公平台,它集成了多种实用功能,旨在优化中介公司的内部管理流程,提高工作效率。...对于房产中介行业来说,这是一款不可或缺的高效能管理工具。
在现代 Web 开发中,构建工具扮演着至关重要的角色,它们能够简化复杂的项目管理,优化代码,提高开发效率。`gulp-auto` 作为其中的一员,通过其强大的配置能力和灵活性,为开发者提供了自动化处理前端资源的能力。 ...
6. **Jenkins**:持续集成/持续部署(CI/CD)工具,自动化构建、测试和发布流程。 7. **Trello**:项目管理工具,采用看板方式,适用于敏捷开发中的任务管理。 8. **Slack**:团队协作软件,整合沟通、文件共享、...
除此之外,还有许多其他实用的小工具,如在线的代码片段管理工具(如GitHub Gist)、颜色选择和配色工具(如Coolors)、前端性能检测工具(如Lighthouse)等,它们都是Web开发者日常工作中不可或缺的部分。...
** Maven管理工具详解 ** Maven是一个强大的Java项目管理和综合工具,它简化了构建、依赖管理和项目的生命周期。在Java开发领域,Maven几乎已经成为标准的构建工具,它通过使用一个项目对象模型(Project Object ...
在开发过程中,使用Maven作为项目管理工具是非常常见的选择。Maven是一个强大的构建工具,可以帮助开发者自动管理项目的依赖关系、构建流程以及文档生成。在JavaCV项目中,通过在Maven的pom.xml文件中声明JavaCV的...
API管理工具则方便开发者创建、测试、发布和维护API接口。 持续集成与持续部署(CI/CD): Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与...
这两个工具都提供了强大的依赖管理和构建生命周期管理功能。例如,通过Maven的`pom.xml`配置文件,我们可以声明库的依赖、版本信息、插件等,而Gradle则使用Groovy或Kotlin DSL进行配置。 2. **版本控制**:使用Git...
【新闻发布管理系统】是一种常见的Web应用程序,它主要用于在线发布、管理和更新新闻内容,是网站内容管理系统的组成部分。在北大青鸟的课程项目中,这个实战项目旨在帮助学生掌握实际的编程技能,尤其是Java语言在...
本文将深入探讨OSGi常用的服务发布和获取方式。 一、服务发布 1. **ServiceRegistration**: 当一个模块想要提供服务时,它会创建一个实现了所需接口的类,并使用`BundleContext`的`registerService()`方法来注册该...
CMake是一种跨平台的构建系统,它用于管理软件构建过程,尤其在多语言和多编译器环境中。本文将深入探讨VS2013和VS2015中常用的两个CMake版本:3.6.1和3.11.3,并分析它们的关键特性和应用场景。 首先,CMake 3.6.1...
8. **SonarQube**: 代码质量管理工具,可进行静态代码分析,查找潜在的代码问题,如bug、漏洞、复杂度等,并提供持续集成的支持。 9. **IntelliJ IDEA的Alibaba Java Coding Guidelines插件**: 该插件根据阿里巴巴...
综上所述,NuGet作为.NET的包管理工具,通过`nuget.exe`提供了强大的命令行功能,方便开发者进行包的管理和分发。结合Azure Artifacts,用户可以获得一个完整的包生命周期管理解决方案,从创建、测试到部署,都能在...
Apache Maven是一款强大的Java项目管理工具,它通过一套标准的项目对象模型(Project Object Model,POM)来管理项目构建、报告和依赖关系。Maven使得开发者能够轻松地配置和管理项目的构建过程,大大简化了软件开发...
本文将深入探讨“一个分布式常用工具组件”所涵盖的关键技术领域,包括分布式缓存、分布式序列号生成器、分布式锁以及分布式订阅发布系统。这些组件是构建大规模、高性能应用程序的基础。 **分布式缓存** 分布式...