构建与编译(Java)

2022-08-31 07:22:51

认为这个问题的答案很明显,但在这里:

当我在学校(java)做一个小项目时,我会编译它。

在我的鸡舍上,我们使用蚂蚁来构建我们的项目。

我认为编译是构建的一个子集。这是正确的吗?构建和编译有什么区别?

相关:
编译和构建有什么区别?


答案 1

“构建”是一个过程,涵盖了创建软件“可交付成果”所需的所有步骤。在Java世界中,这通常包括:

  1. 生成源(有时)。
  2. 编译源。
  3. 编译测试源。
  4. 执行测试(单元测试、集成测试等)。
  5. 包装(装罐,战争,ejb-罐,耳朵)。
  6. 运行运行状况检查(静态分析器,如 Checkstyle、Findbugs、PMD、测试覆盖率等)。
  7. 生成报告。

因此,如您所见,编译只是构建的(一小部分)(最佳实践是使用Maven或Ant等工具完全自动化所有步骤,并持续运行构建,这称为持续集成)。


答案 2

我在这里看到的一些答案是断章取义的,如果这是一个C /C++问题,那就更有意义了。

简短版本:

  • “编译”是将.java文件转换为.class文件
  • “构建”是一个通用术语,包括编译和其他任务。

“构建”是一个通用术语,描述了包括编译在内的整个过程。例如,构建过程可能包括生成 Java 代码或文档文件的工具。

通常还会有额外的阶段,例如“软件包”,它将所有.class文件放入.jar中,或者“清理”,清除.class文件和临时目录。


推荐