繁体   English   中英

构建和部署Java Web项目有什么区别?

[英]What is the difference between building and deploying a Java Web project?

我知道

编译是将源代码转换为目标代码的行为。

链接是将目标代码与库组合成原始可执行文件的行为。

构建是由编译和链接组成的序列,可能还有其他任务,例如安装程序创建。

(感谢Ignacio Vazquez-Abrams )。

但是,当我想在Java Web项目中看到我的更改时,我还必须部署它们(在构建之后)。 Netbeans在部署项目时做了什么?

您的定义似乎来自本机代码编译器(C,C ++,Pascal等)的世界。 在Java中,编译只是将Java代码(文本)转换为Java字节码的过程,Java字节码也是高级代码,而不是对象(机器)代码。

每次应用程序在虚拟机内运行时都会发生Java链接,其中字节码中的符号被解析为对其他加载的字节码的引用。 所以java中的序列实际上是:编译 - >部署 - >链接 - >运行。

一旦运行,JVM 可以选择将Java字节码转换为机器代码以便直接执行,但它也可以只解释字节码。

在这种情况下,部署只是告诉应用程序服务器代码所在的位置并运行应用程序描述符中定义的启动代码(例如,web.xml中web.xml中定义的Servlet和Filter初始化)。

它通知应用程序服务器(例如tomcat)您的应用程序存在,配置它并启动它,以便通过http提供。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM