【问题标题】:Using a Continuous Integration Server for Home Development使用持续集成服务器进行家庭开发
【发布时间】:2009-01-30 05:51:02
【问题描述】:

作为我之前的帖子“Using Version Control for Home Development”的后续内容,我现在询问有关将构建服务器用于宠物项目的意见。

最近我一直在阅读有关“构建服务器”概念的文章,并查看了 Maven 和 CruiseControl.Net 等应用程序。

因此我问,在我的家庭宠物项目中使用像 CruiseControl.Net 这样的东西有多可行?

我问的原因是我认为这些构建服务器主要针对团队项目......但话又说回来,我对这个自动构建过程仍然很陌生。

请记住,大多数时候,这些宠物项目只由一个人处理,而不是一个团队。

那么我应该更多地研究这个概念以便在家使用,还是应该为了经验而进行一些练习?

[编辑]

虽然我感谢大家就 CC.Net 等替代方案的回答,但没有人真正解决实施家庭开发构建系统是否可行的问题 ?

【问题讨论】:

    标签: continuous-integration cruisecontrol.net build-automation


    【解决方案1】:

    为您的家庭项目实施构建服务器是完全可行的。我自己为我的家庭项目实施了 CC.Net,即使是第一次这样做也很容易。我会说学习曲线(取决于你的经验)不到一天就可以开始和构建你的第一个项目,尽管当你深入研究一些更有趣的细节时,这条曲线上总会有更长的尾巴。

    对我来说,问题更多是对这些项目进行持续集成的动机之一。如果您使用的“家庭项目”是“一次性项目”的同义词,那么除非您专门将其用作 CI 学习练习,否则为 CI 带来麻烦可能没有多大意义。

    但是,假设这些不是您所说的一次性项目,我发现(除了自动化带来的更明显的好处之外)实施 CI 有助于减少返回您已经完成的项目所涉及的开销离开了一段时间。当然,在这方面,单元测试是最有价值的资产,但是单元测试与自动化构建/部署过程的结合确实可以让您在设置项目后回到项目时专注于新的和更改的需求一会儿。

    此外,正如 mghie 在 cmets 中对此答案所指出的那样,“如果它们相互构建,CI 将为家庭项目带来更大的好处,因此一个项目的更改可能会导致其他项目的构建中断。”

    我的建议是,只做一次,这样您就可以更清楚地了解所涉及的内容以及您可能获得的好处和可能产生的缺点。然后自己决定是否值得继续做。就像我说的那样,学习曲线相当低,因此您必须进行的投资只是尝试一下不应该成为不这样做的理由。

    简而言之:可行 - 是的,适合家庭项目 - 很有可能,值得进一步调查 - 肯定,投资 - 相对较低

    【讨论】:

    • +1,一个非常好的答案,因为可以回答 OP 的问题。我可能会补充说,如果它们相互构建,CI 将为家庭项目带来更大的好处,因此一个项目中的更改可能会导致构建中断其他项目。
    【解决方案2】:

    作为 CC.Net 的替代品,我建议您看看 TeamCity, 真的很容易设置并启动和运行。

    相关问题:

    【讨论】:

      【解决方案3】:

      几个月前我安装了 CC.net,我花了整整一晚来配置它并创建 xml 配置,我对此并不后悔,它与 SVN、Nunit、Nant 或 Msbuild 顺利集成。如果是为了获得经验,你应该尝试一下

      【讨论】:

      • +1 用于尝试获得经验。你永远不知道什么时候可能需要在未来的工作项目中使用 ccnet。
      【解决方案4】:

      看看 Hudson,它很容易。您只需部署在 Tomcat 或您使用容器的任何其他 servlet 中。一旦启动,每个配置都可以使用浏览器完成。 Hudson 支持 maven、ant 等,并支持所有主要的 SCM。过去一年我一直在使用 hudson,没有遇到任何问题。

      【讨论】:

        【解决方案5】:

        CC.NET 非常可行,事实上它具有免费成本和广泛支持的操作。更不用说因为您可以获得源代码,您可以根据您的需要对其进行修改,我无法想象有更好的东西。我阅读了其他关于设置有多困难的合规性文件,但老实说,我在一个小时内完成了我的第一个简单的 TFS/VS2005 项目。请记住,如果您遇到任何问题或障碍,CC.NET 有一个非常活跃的 google 群组供用户和开发人员使用,他们愿意帮助您解决任何问题。

        【讨论】:

          【解决方案6】:

          我喜欢 CC.NET,我是 CI 的忠实粉丝,但我不得不问:项目只有一个开发人员,存在哪些集成场景?你不会直接在 Visual Studio 中构建整个项目,而不需要 CI 吗?

          【讨论】:

          • CI 不仅仅意味着编译。您也可以 1. 删除源目录并重新构建可以解决一些依赖关系和链接问题。 2. 单元测试、静态分析、代码度量 3. 多平台上的自动化 UI 测试 4. D'oxygen 之类的东西 5. 按需发布或安装程序
          • 这就是我使用 NAnt 的目的。
          • 好吧,不管你用什么,这都是 CI,所以我看不出在 Visual Studio 中构建它如何消除对 CI 的需求
          • 因为 CI 是一个持续运行的服务器,它会轮询您的源以查找更改并将它们与其他人的集成。一名开发人员,一台机器......为什么要为一个人运行服务器?他会保存他的代码并等待 CI 进程运行吗?
          【解决方案7】:

          我同意 CC.NET 是本地/家庭开发的绝佳选择。我想补充一点,它不需要 SCM 工具即可使其工作。有一个文件系统观察程序plugin 将只监视文件更改。这样您就不必为了执行它而进行签入。此外,您不必等待 CI 周期完成,就像每次都运行 F6 一样,除了 IDE 不会使用它的所有资源,您可以继续编码。如果它坏了,您可以选择调查或忽略。没有一种方法可以进行 CI。

          如果您确实创建了单元测试,那么在每次保存时不断地针对您的代码执行该测试肯定在早期问题中具有一些优势。使用 CCTray 可以让您看到它,但不会被打扰。我的 2 美分。

          最后,第一次设置可能有点困难,但您可以调整 Visual Studio C# 模板或任何您希望自动配置 CI 设置的内容,而用户所需的信息量最少。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多