我们的项目很快就会迁移到这些开源工具。在积极的努力中,我对专家们感到疑惑 - 你发现这些产品的好处,坏处和丑恶之处是什么?什么是不直观的?无需评论所有这些内容,但如果您愿意,请随意!
如果这应该是维基或编辑为更“有问题”,请提供建议或编辑。谢谢你!
答案 0 :(得分:5)
我们公司大约8个月前开始使用 Maven 。它会强制您将项目组织到逻辑模块中。之前,我们有两个项目用于客户端/服务器应用程序,具有循环依赖性。现在我们有一个共享代码的框架项目,以及用于独特内容的单个服务器和客户端项目。我们所有的“独立”应用程序(自定义安装程序构建器等)也可以从框架中分支出来。根据您的设置的复杂程度,“Mavenize”您的项目可能会非常耗时。但是,我发现,一旦你这样做,依赖管理等问题就不再是一个积极的问题。
Maven也很有用,因为它很好地与Hudson挂钩,Hudson是一个持续集成服务器。 Hudson 将为您定期构建,无论是定期轮询Subversion,还是每晚都进行。它还可以自动完成所有单元测试(您/是/使用 JUnit 或类似的适当框架,对吗?)Hudson的设置非常简单。您可以使用最少的配置立即将其部署到Tomcat中。如果您想使用Sonar等工具,它可以提供不错的插件选择。
Subversion 是一款相当受欢迎的源代码控制工具。我不介意;这是我最有经验的。我玩Mercurial,但还不足以将Subversion与它进行对比。使用Subversion最重要的事情是如何正确分支和合并。知道这一点将允许您为不相交的功能请求,错误修复等维护单独的分支。您可以更轻松地为QA /您的测试组进行实验性构建或特殊构建。合并可能很痛苦。我听过一些恐怖故事,但我遇到的最糟糕的事情是处理在团队工作时出现的“正常”冲突。
我遗漏了Trac,因为我之前没有听过这个名字的经验。 编辑:快速Google告诉我它是错误跟踪软件。我对Bugzilla有了不错的运气,Bugzilla是另一个开源的bug跟踪器,但正确配置它会加剧和升级可能是一场噩梦,因为它的权限设置有多挑剔,特别是在尝试与suexec集成时。 YMMV
答案 1 :(得分:0)
我将专注于 Hudson ,因为这就是我所知道的。首先,一些快速建议:
哈德森是一个移动的目标。有频繁的版本和许多扩展功能的插件。这有两个优点(总有新的东西)和缺点(总有一些新东西!)。可能很难找到合适的插件来处理构建过程的细节。目前,最好的搜索工具是Hudson Plugins page上的Ctrl-F。我建议只安装您将使用的插件,因为如果您安装了所有插件,您最终将会遇到许多配置选项,这些选项可能会导致您的构建设置导航变得混乱。以下是一些通用的插件:
升级(或安装新的)通常很容易且相对轻松 你想要使用的插件),但不断升级只是为了跟上最新的 如果一切都适合您,则不需要发布。你想来 适用于您的升级政策。
我之前已经推荐了这个(在my answer about upgrading Hudson的上下文中),但我觉得有一个Hudson游乐场是有用的 与团队使用的主要哈德森分开。这让我可以做一个健全的检查 在“生产”实例上执行之前进行升级,这是尝试提供更好报告的新功能/插件的简便方法。
对于所有工具,都会有一个学习曲线。特别是在这种情况下 对哈德森来说,尝试使用它并学会使用它是值得的,因为它是 非常强大,它给整个团队提供了过去休息的力量 在“建立家伙”的手中。
关于 Subversion ,我完全同意@ Tom的“学会分支和 合并“建议。最近,我一直在使用git's svn integration来管理我的 开发工作(见popular blog post about git-svn)。 git做得很多 更容易一次处理几个主题并将它们分开, 即我需要制作的错误修复不会干扰我的功能 继续努力。我建议学习一些DVCS允许的技巧 因为扩大你的视野是件好事。
答案 2 :(得分:0)
要真正能够回答您的问题,您能分享您正在迁移的产品/来自/?
我的团队最近从VSS搬到了Subversion,我们很喜欢它。它为我们提供了更多的功能和更少的问题。在使用之前了解它的工作原理非常重要,特别是(如有人提到的)分支和合并。值得庆幸的是,官方的Subversion书籍是免费提供的(只是谷歌“颠覆书”)并且编写得非常好。特别是,我们喜欢Subversion的原子提交,轻松分支的能力,自动处理大多数合并的能力,以及可以告诉你谁最后改变了一行代码的'责备'功能。我们主要不喜欢的是学习曲线。 Subversion与VSS完全不同,我们的一些老开发人员花了一段时间才习惯它。几个开发人员已经开始使用git与svn存储库进行交互,并报告了提高的工作效率,但我还没有完成。还提供各种各样的Subversion工具,因此很容易找到适合您风格的工具。
Trac不仅仅是一个bug跟踪器。我们刚刚实施了Trac,它一炮打响。 Trac自动交叉引用存储库提交和票证的能力使我们的QA团队的工作变得更加容易。能够将票证链接到基于维基的文档并从单个搜索框中搜索所有内容,这使得查找信息和了解您之前未曾参与过的项目部分变得非常容易。 “里程碑”功能(加上几个插件)可以自动完成我们过去手工完成的一些项目管理任务。同样,缺点是学习曲线。它是开发人员必须习惯使用的新东西,而wiki使用必须学习的标记语法。不过,这不是一个障碍。我们只有Trac启动并运行了一个星期才有两三个其他团队想要自己的。我个人非常喜欢Trac是开源的,可以用一点Python轻松扩展。
我没有使用过Maven或Hudson,所以我不能评论那些。
答案 3 :(得分:-1)
他们都很好。 Trac对我不起作用,但这可能是因为我在安装过程中做错了。在我工作的地方,我们使用Subversion,Hudson和Maven,这非常有效。你可能也想看看Nexus或Artifactory。