编译与构建
编译
编译(compile),将源代码转换成二进制代码;用以实现这个转换过程的工具被称为编译器(compiler)。编译器在同一时刻只能转换一个编译单元(即单个源代码文件),一般相应的编程语言都会提供。
构建
构建(build),就是使用一个自动化工具将源代码文件生成在生产环境可以使用的目标文件(比如一个可执行应用程序),这其中会涉及到编译源码,编译测试源码,执行测试,打包(成jar, war包等),健康检查,生成报告等;用以实现这个生成过程的工具就是构建系统(build system)。
从上面的描述,我们也可以看出,编译只是构建的一小部分。
常见的构建工具
Apache Maven;专门为Java项目打造的管理和构建工具,主要用于:提供一套标准化的项目结构,一套标准化的构件流程,一套依赖管理机制。
Apache Ant;一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。默认情况下,它的buildfile(XML文件)名为build.xml。
Gradle;针对Android,一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。
MsBuild:一个自由且开源的构建工具集,适用于托管代码以及原生C++代码,是.NET框架的一部分。Microsoft Visual Studio依赖于 MSBuild,MSBuild也依赖于Visual Studio
Npm:node package manager,是随同Node.js一起安装的第三方包管理器;通过npm,我们可以安装、共享、分发代码,管理项目的依赖关系。
推荐大家也可以看看我先前写的几篇文章:《运行npm install命令的时候会发生什么?》;《三种出包命令npm, yarn, webpack的对比》;《运行npm run命令的时候会发生什么?》
Cmake:跨平台的编译工具;根据不同的平台能输出各种各样相对应的makefile或者project文件,CMake并不直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile)。Cmake即cross platform make的缩写。
华为云编译构建服务
华为云DevCloud编译构建服务(CloudBuild)基于云端大规模并发加速,为客户提供高速、低成本、配置简单的混合语言构建能力,实现编译构建云端化,支撑企业实现持续交付,缩短交付周期,提升构建效率;支持如下这些功能:
参考资料
- 点赞
- 收藏
- 关注作者
评论(0)