【问题标题】:What build tool do you use professionally?您专业使用什么构建工具?
【发布时间】:2008-11-26 14:45:48
【问题描述】:

在家里,我使用 CTRL+SHIFT+B 或 F7 或任何键序列来启动我的构建工具的构建。在工作中,这并不能完全削减它。

在我的第一份工作(实习)中,我们使用了一个名为 Visual Build 的产品,我非常喜欢它。这是我用过的最好的构建工具。这里的缺点是它不是免费的。

在我最近的工作中,我对 Ant 几乎一无所知。现在,不幸的是,我已经深入参与了我们的构建过程,无法自拔。它可以工作,是的,但是在从 Visual 构建之后,它似乎每一步都在与我作斗争。是的,它是免费的,但我们并不想成为一家只提供免费软件的开发公司或其他任何东西。

我从未查看过 make 或任何其他构建工具,所以我真的不知道还有什么。

有没有人见过或有过使用 Visual Build 的经验?主要是我喜欢一些关键的东西:

  1. 它有一个 GUI
  2. 无需编译类即可运行任意 VBScript
  3. 您可以逐步完成构建过程,或从中间的任何位置开始。

是否有任何具有此功能的免费构建工具?有什么方法可以让人们相信继续前进是值得的?现在是 2008 年。我们使用 IDE 进行开发,为什么不使用 (IBE) 进行构建?

编辑:我主要是在寻找我最后一个问题的答案;有没有可以免费使用的内置 GUI 解决方案?

【问题讨论】:

    标签: ide ant build-automation


    【解决方案1】:

    不是很复杂,但我们使用了一组批处理文件。效果很好。

    【讨论】:

    • +1 我一直认为你必须使用某种构建工具,但在我的上一个项目中,我坚持使用一堆 shell 脚本,它工作得非常好。有时只需要很少的时间就可以完成工作^^。
    【解决方案2】:

    我们使用 FinalBuilder - 我认为它与 VisualBuild 非常相似,尽管我没有使用过后者。

    它确实从命令行运行,如果需要,您可以将其与 CC.Net 集成。

    【讨论】:

      【解决方案3】:

      对于 Java 项目,我们使用 Teamcity,类似于巡航控制,但您也可以进行远程运行,即将您的更改发送到服务器,它会构建并进行单元测试,如果一切正常,那么您签入,非常好的构建工具,最多可免费提供 20 种构建配置。

      对于我们的 Visual Studio 2005 项目,包括使用 InstallShield 打包最终的 exe 和 dll 并将它们放在我们使用 Final Builder 的共享服务器上,它不是免费的,但它非常易于使用和上手。

      我们还通过远程登录(从 FinalBuilder)到许多其他平台(Unix/Linux/OpenVMS)并通过在那里运行 makefile 来启动远程构建。

      我们不使用连续构建,但有一个 FinalBuilder Server 可以处理这个问题,并免费提供 FinalBuilder Professional 许可证。

      我们对 FinalBuilder 非常满意,它很容易上手,而且功能强大,可以解决大多数问题。

      【讨论】:

        【解决方案4】:

        CMake。为 KDevelop、Eclipse、Makefiles 和 Visual Studio(和 XCode)生成构建文件,它确实有效。您可以使用宏轻松扩展它,尽管编程能力相当有限。它很容易学习,并且将现有应用程序从 Visual Studio 移植到它非常容易。但是,您只能使用 C++/C 和 IIRC Fortran 代码。

        KDE 现在也在使用 CMake,因此它似乎可以很好地扩展(即项目/依赖检查的生成时间还不错)。

        【讨论】:

          【解决方案5】:

          我不确定这是否正是您正在寻找的,但我喜欢 CruiseControl.NET。我让它使用 MSBuild 任务构建我的项目。它没有确切的 GUI,但有一个 Web 界面可以查看您的构建结果和一个系统托盘常驻程序,它会提醒您构建状态。

          【讨论】:

          • 不完全一样的东西,我们实际上使用Visual Build Pro 和CruiseControl.NET..VisualBUildPRO 是一个很酷的工具。我们更多地使用它来逐步完成我们的安装程序创建过程,而不是所有构建
          【解决方案6】:

          上勾拳。它是免费的。

          UppercuT 使用 NAnt 进行构建,它是极其容易使用的构建框架。

          自动化构建就像 (1) 解决方案名称、(2) 源代码控制路径、(3) 大多数项目的公司名称一样简单!!!

          http://code.google.com/p/uppercut/

          这里有一些很好的解释:UppercuT

          【讨论】:

            【解决方案7】:

            回到击键问题,我找到了 CTO 喜欢的 Hoekey。我自己不使用它,但作为一种为事物分配击键的方式,它非常好。

            【讨论】:

              【解决方案8】:

              我对 Visual Build 一无所知,但从您的描述来看,它听起来像是与 Windows 相关联并且不能从命令行运行。

              如果您正在构建 Java 软件(我假设您是因为您使用的是 Ant),那么最好有一个跨平台的工具。如果您可以从命令行运行该工具,那么它是可编写脚本的,这对于自动化非常重要。

              Ant 也是可扩展的并且是事实上的标准。您可能使用的许多工具(Cobertura、TestNG 等)都提供了 Ant 任务,以便它们可以轻松地与您的构建集成。

              我将 Ant 用于所有 Java 项目。有些人更喜欢Maven,但我不是其中之一。 Ant 远非完美(XML 语法有点笨拙),但它是well documented,非常稳定且非常简单。

              如果您使用标准工具,例如 Ant 或 Maven,您将能够利用任意数量的 Continuous Integration 产品。我怀疑你会发现很多与 Visual Build 一起工作的东西。

              大多数 IDE 都支持 Ant,因此它们为您提供各种 GUI,而您的 CI 服务器将为您提供用于构建的 Web 界面。

              【讨论】:

              • 由于所有开发人员(我们五个人)都在运行 Windows 机器,因此跨平台并不是必需的。我们将 ant 用于 Java 和 C++(来自 Visual Studio)项目。我们在任何 IDE 中都没有与 ant 集成,这就是为什么我正在寻找类似 Visual Build 的东西
              【解决方案9】:

              NAnt(Ant 的 .NET 端口)。效果很好,并且易于扩展。

              【讨论】:

                【解决方案10】:

                对于小型项目,我确实使用构建后脚本,并且在 7z、Nsis 和类似 CLI 工具的支持下,它完美地为我完成了这项工作。

                【讨论】:

                  【解决方案11】:

                  TeamCity 和 CuriseControl 适用于任何项目,但这就是您选择 TeamCity 的原因:-

                  易于设置:在设置过程中,我们发现 TeamCity 更易于设置和使用,尤其是与 CruiseControl 相比。我们不需要编辑 XML 文件或大规模配置像 CruiseControl 这样的单个构建机器。

                  易于扩展:TeamCity 的突出之处在于其易于扩展。如果我们发现构建在队列中等待的时间过长,我们可以添加更多计算机作为代理。我们唯一的额外工作是向 TeamCity 服务器注册新计算机并安装 msbuild 和 subversion。

                  与 Subversion 的交互:可以检查自上次构建以来向 subversion 提交了多少和哪些更改,谁开始了构建等。

                  【讨论】:

                    【解决方案12】:

                    我越来越喜欢 scons 用于构建 C++ 文件。它非常简单,并且构建脚本是用 Python 编写的(这比一些被破解的 DSL IMO 好得多)。

                    【讨论】:

                      【解决方案13】:

                      AntMaven 是很棒的小型构建工具。

                      如果您想自动化构建过程,还有一些很棒的工具,例如 TeamCityBamboo

                      【讨论】:

                        【解决方案14】:

                        就我个人而言,我几乎所有事情都使用 Makefile,因为它们非常简单。但在我的工作中,我不得不使用 ant。

                        我反对 ant 的主要问题是 XML 使其难以阅读和理解,即使使用正确的缩进也是如此。另一方面,XML 的冗长在读取别人的 ant 文件时会有所帮助,但当文件超过几十行时,它仍然会成为 PITA。

                        至于要构建一个 GUI...我一直觉得这是一个减号而不是一个加号。

                        【讨论】:

                          【解决方案15】:

                          Maven 对我来说是最好的,因为它处理项目依赖项

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2011-11-07
                            • 2023-03-18
                            • 1970-01-01
                            • 1970-01-01
                            • 2015-12-16
                            • 1970-01-01
                            相关资源
                            最近更新 更多