请原谅我提出一个新手问题,dist和deploy文件夹之间有什么区别?看起来是一样的—两者都包含文件的.jar。但是,当您清理并构建项目时,看起来只更新了dist文件夹。如何更新部署文件夹?
谢谢。
我假设您使用的目录布局与Netbeans IDE默认创建的目录布局相似。
-
dist
是存储您生成的存档的文件夹(因此它通过clean和build进行更新)。 -
build
文件夹包含已编译的类和资源,但不包含压缩档案。
Maven,默认情况下,将两者的内容放在一个target
文件夹中。
一个deploy
文件夹是你放置你生成的工件的地方(存档或目录树与存档相同的布局,又名爆炸存档),这样你的应用程序服务器可以为它服务。
在开发环境中,将服务器配置为扫描dist
文件夹以查找生成的工件并重新部署它们是很常见的。因此,在这种意义上,deploy和dist文件夹可以是相同的。
您甚至可以拥有"就地"部署场景。这是通过将类直接编译到webapp
中的WEB-INF/classes
文件夹来实现的(类似于Maven war:inplace
goal)。如果您将服务器设置为扫描此文件夹中的更改,那么您可以就地编辑诸如jps之类的资源,并将其立即反映到正在运行的应用程序中(也称为爆炸工件热部署)。
当然,您可以通过指示IDE将资源和编译后的类复制到分解的归档结构中并配置服务器扫描它来完成类似的操作。Netbeans倾向于为此使用build/web
。
另外,有时增量式重新部署是不可能的,并且频繁的完全重新部署是不可取的(一些应用程序可能需要几分钟的时间来重新部署)。这就是为什么您可以使用单独的文件夹/将工件部署为jar/wars/ears等。
编译、打包和部署是构建生命周期中非常不同的阶段/概念,它们可能同时发生,也可能不同时发生。我希望这是足够的信息让你去。
欢呼,
通常一个项目负责创建一个工件,当该工件被构建时,它被放在一个名为target或dist的目录中。当你的项目负责创建一个web应用程序时,你需要一个地方来布局你的项目中的文件,以便在你的servlet容器或应用程序服务器下运行,这个地方就是部署文件夹。因此,dist目录通常只包含war、ear或jar等单个工件,而deploy文件夹的内容将在应用服务器可以使用的目录结构中展开。如何更新部署文件夹内容取决于您的构建过程或IDE集成。