认为答案很明显,但是可以解决:
当我在为学校设计一个小型项目时(使用Java),我对其进行了编译。
在我的小屋中,我们正在使用ant来构建我们的项目。
我认为编译是构建的一部分。这样对吗?构建和编译有什么区别?
相关:
编译和构建有什么区别?
认为答案很明显,但是可以解决:
当我在为学校设计一个小型项目时(使用Java),我对其进行了编译。
在我的小屋中,我们正在使用ant来构建我们的项目。
我认为编译是构建的一部分。这样对吗?构建和编译有什么区别?
相关:
编译和构建有什么区别?
Answers:
“构建”是一个过程,涵盖创建软件“可交付成果”所需的所有步骤。在Java世界中,这通常包括:
如您所见,编译只是构建的一小部分(最佳实践是使用Maven或Ant之类的工具完全自动化所有步骤,并连续运行构建,这被称为Continuous Integration)。
编译是将源代码转换为目标代码的行为。
链接是将目标代码与库组合成原始可执行文件的行为。
构建是由编译和链接以及可能的其他任务(如安装程序创建)组成的序列。
许多编译器在编译源代码后会自动处理链接步骤。
简单来说
编译将Java代码(人类可读)转换为字节码,因此虚拟机可以理解。
构建将所有已编译的部分放在一起,并创建(构建)可执行文件。
实际上,您正在做相同的事情。Ant是基于XML配置文件的构建系统,该文件可以执行与编译软件有关的各种任务。编译Java代码只是这些任务之一。还有许多其他功能,例如到处复制文件,配置服务器,组装zip和jar以及编译其他语言(例如C)。
您不需要Ant来编译软件。您可以像在学校一样手动进行操作。Ant的另一种替代方法是称为Maven的产品。Ant和Maven都做相同的事情,但是方式完全不同。
在Java中:构建是生命周期,其中包含命名阶段的序列。
例如:maven具有三个构建生命周期,下一个是default
构建生命周期。
◾validate - validate the project is correct and all necessary information is available
◾compile - compile the source code of the project
◾test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
◾package - take the compiled code and package it in its distributable format, such as a JAR.
◾integration-test - process and deploy the package if necessary into an environment where integration tests can be run
◾verify - run any checks to verify the package is valid and meets quality criteria
◾install - install the package into the local repository, for use as a dependency in other projects locally
◾deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
编译只是将源代码转换为二进制,编译是编译并将所需的任何其他文件链接到生成目录中