你使用哪些开发和构建生命周期工具?

10

我正在努力将目前由大约20名开发人员负责的项目转换为现代化的开发和构建环境。我们目前使用基于RCS的源代码控制系统和关联问题跟踪系统,两者都具有Motif UI。没有正式的生产构建过程,只是尽可能让它工作。

我感兴趣的是:

  • 开发工具
  • 版本控制
  • 问题跟踪
  • 依赖管理
  • 配置管理
  • 自动化构建
  • 自动化测试
  • 持续集成
  • 制品管理
  • 发布管理
  • 部署管理
  • 需求跟踪
  • 还有什么?

我不仅对你使用哪些工具感兴趣,而且对它们如何互相集成,以及它们的设置和使用有多容易,以及开发人员和管理层喜欢程度也很在意。我们的项目结合了Java,C++和VHDL,但我仍然希望听听其他语言的人的意见。目前,我正在使用Eclipse、Subversion、Trac、Maven、Hudson和Nexus。

此外,是否有一个比“构建生命周期”更好的术语来概括从开发人员创建代码到构建、测试和进入生产系统的流程?“构建生命周期”似乎有限,但“项目生命周期”已经被使用。

8个回答

4

对于Java技术,我更讨厌Ant而不是Maven。如果你刚开始接触Java,那么选择Maven是个不错的选择,尤其是因为你已经认识到"Maven构建生命周期"包含了12个不同且复杂的学科!你需要为它们所有都选择规定。幸运的是,Maven已经确立了大部分的惯例,选择它可以省去很多麻烦。

对于持续集成和常规构建自动化,我喜欢使用Hudson。


3
在过去的两年中,我们逐渐从“每个项目都有自己的工具集”策略转向了Trac+SVN+SCons解决方案,并对此感到非常满意。
转换到SCons需要一些工作,但真正得到了回报。我们拥有一个异构环境,主要是针对不同嵌入式平台的C/C++、内核模块、一些桌面应用程序和各种Python模块作为胶水代码。当您想要添加对自己的编译器和小众工具的支持并需要根据您的要求调整构建系统时,SCons真正发挥作用。以前,我们几乎必须为每个嵌入式平台使用不同的GUI - 现在,由于SCons直接调用编译器,工作周期略有改善。
我们的开发人员要么使用Emacs或Vim,没有人想切换到其他任何东西,所以我们(幸运地)坚持了这一点。我对部署不太熟悉,所以无法谈论它。

3
如果您使用.NET,那么很难击败Team Foundation Server在与Visual Studio的集成方面。它包含开发工具、版本控制、问题跟踪、配置管理、自动化测试、单元测试、自动构建、工件管理和您所描述的其他所有内容。
当然,TFS价格昂贵,常常不直观,并且与我使用过的其他工具相比缺少一些功能。如果您拥有MSDN许可证,您可以免费使用TFS for Workgroups(最多5个用户) 。

2
  • 开发工具 JetBrains IntelliJ IDEA
  • 版本控制 Subversion
  • 问题跟踪 Atlassian Jira
  • 依赖管理 Maven
  • 配置管理 TeamCity
  • 自动化构建 TeamCity
  • 自动化测试 JUnit(?)
  • 持续集成 TeamCity
  • 构件管理 Maven
  • 发布管理 Homo Sapien
  • 部署管理 Maven/Homo Sapien
  • 需求追踪 Wishful thinking
  • 一次性自动化 Bash
  • 开发者文档 MediaWiki

1

我们是使用VS2008的MS商店。 我们使用Subversion作为SCC和版本控制工具,并且我们的存储库托管在线,因此我们的分布式团队可以使用它。 对于构建,我们使用Hudson和CI,比Nant或MSBuild好得多。 问题跟踪是Bugzilla。 自动化测试是NUnit。

要避免的工具包括Team Foundation Server和Sharepoint,因为它们对于真实世界的使用来说太笨重了。

顺便问一句,有没有人知道一个好的Scrum工具,可以生成燃尽图表,最好还能链接到Basecamp?


我不知道Basecamp,但在我的研究中,我看到了几个适用于Scrum Burndown的Trac插件。 - John Ellinwood
但是这个 -> http://www.sprintometer.com/ 但它们没有连接到Basecamp,所以我没有真正回答你的问题。 :-( - adolfojp
我猜你因为抨击Team Foundation而被踩了,但我不禁同意。它是一个400MB的安装包,用于一个过度吹嘘的版本控制系统,实际上是Visual Studio的简化版。它很慢、笨重且难以使用。而Sharepoint的搜索结果最多也就是无用的。 - Trampas Kirk

0

我们也使用许多工具,但是我们越来越多地转向Zed Builds & Bugs。我们的主要开发环境是Eclipse + Java,但我们还使用Visual Studio(全部版本),以及至少5个不同的Unix平台构建。

以下是完整列表:

开发工具 - Eclipse 版本控制 - Subversion 问题跟踪 - Zed Builds & Bugs 依赖管理 - Ant 配置管理 - Zed Builds & Bugs 自动化构建 - Zed Builds & Bugs 自动化测试 - JUnit 持续集成 - Zed Builds & Bugs 构件管理 - Zed Builds & Bugs 发布管理 - Zed Builds & Bugs 部署管理 - Zed Builds & Bugs 需求追踪 - Zed Builds & Bugs 一次性自动化 - Zed Builds & Bugs 开发者之间 - Zed Builds & Bugs

0

我在一些项目中使用svn和tac,在其他项目中使用svn和fogbugz。它们的集成非常好。

我仍然使用命令行脚本进行构建,因为它们可以完成我需要的所有工作,包括查找错误和发送电子邮件结果,但这种设置的日子已经不多了。我正在研究跨平台构建工具。

我使用Inno进行win32版本发布。还没有其他平台的产品发布 - 不确定我们将如何部署这些产品。

除了在一些辅助文档、代码和问题跟踪中提到的内容外,我们并不涉及您提到的许多其他事项。


0

团队基础架构服务器和Visual Studio。

我还记得当我的IDE是Sun的Visual C调试器,源代码控制是将所有源文件复制到一个新命名的目录中,并将其放在一个应该备份的服务器上。

但实际上并没有备份。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接