什么是构建工具?

Gau*_*wal 112 build

在过去的4年中,我一直使用Eclipse(用于Java)和Visual Studio Express(用于C#)进行编程.提到的IDE似乎总是提供程序员可能要求的每个工具(当然与编程有关).

最近我听说过一些叫做"构建工具"的东西.我听说他们几乎被用于各种现实世界的发展.它们究竟是什么?他们设计要解决哪些问题?为什么我在过去的四年里从未需要它们?它们是一种命令行剥离IDE吗?

Rit*_*une 104

什么是构建工具?

构建工具是从源代码自动创建可执行应用程序的程序(例如.apk for android app).构建包括将代码编译,链接和打包成可用或可执行的形式.

基本上,构建自动化是脚本或自动化软件开发人员在日常活动中执行的各种任务的行为,例如:

  1. 下载依赖项.
  2. 将源代码编译为二进制代码.
  3. 打包二进制代码.
  4. 运行测试.
  5. 部署到生产系统.

为什么我们使用构建工具或构建自动化?

在小项目中,开发人员通常会手动调用构建过程.这对于较大的项目来说是不实际的,在这些项目中,很难跟踪需要构建的内容,构建过程中的顺序和依赖关系.使用自动化工具可以使构建过程更加一致.

提供各种构建工具(仅命名少数):

  1. 对于java - Ant,Maven,Gradle.
  2. 对于.NET框架 - NAnt
  3. c# - MsBuild.

如需进一步阅读,请参阅以下链接:

1. 构建自动化

2. 构建自动化软件列表

谢谢.


Sch*_*Cat 17

构建工具是管理和组织构建的工具,在有许多项目的环境中非常重要,特别是在它们是相互连接的情况下.它们有助于确保各种各样的人在各种项目中工作,他们不会破坏任何东西.并确保在进行更改时,它们也不会破坏任何内容.

您以前没有听说过它们的原因是您以前没有在商业环境中工作过.在商业环境中,您可能没有遇到过很多东西,特别是如果您在软件公司工作.

正如其他人所说,你一直在使用它们,但是,你没有必要考虑它们,因为你可能已经采用了与通常的商业工作方式不同的方式.


duf*_*ymo 10

构建工具通常在命令行上运行,可以在IDE内部运行,也可以与IDE完全分开.

我们的想法是将编译和打包代码的工作与创建,调试等分开.

可以在命令上或IDE内运行构建工具,这两者都由您触发.在将代码从存储库检查到干净的构建机器之后,它们也可以由持续集成工具使用.

make是*nix环境中用于构建C/C++的早期命令工具.

作为Java开发人员,最流行的构建工具是Ant和Maven.两者都可以在IntelliJ,Eclipse或NetBeans等IDE中运行.它们也可以被Cruise Control或Hudson等持续集成工具使用.

  • 现在,Gradle也被广泛使用 (6认同)

Bai*_*ang 5

构建工具通常将源代码转换为二进制文件——它组织源代码、设置编译标志、管理依赖项……其中一些还与运行单元测试、进行静态分析、生成文档集成。

Eclipse 或 Visual Studio 也是构建系统(但更多的是 IDE),对于 Visual Studio,它是底层 msbuild 来解析 Visual Studio 项目文件。

所有构建系统的起源似乎都是著名的“make”。

有不同语言的构建系统:

  1. C++:make、cmake、premake
  2. Java:ant+ivy、maven、gradle
  3. C#: msbuild

通常,构建系统要么使用专有领域特定语言(make、cmake),要么使用 xml(ant、maven、msbuild)来指定构建。目前的趋势是使用真正的脚本语言来编写构建脚本,比如 premake 用 lua,gradle 用 groovy,使用脚本的好处是灵活得多,也可以让你想出一套标准API(作为构建 DSL)。