Java - dist和deploy文件夹之间的区别

O_O*_*O_O 7 java directory netbeans

请原谅我一个新手的问​​题,但dist和deploy文件夹之间有什么区别?看起来像是一样的东西 - 两者都包含文件的.jar.但是,当您清理并构建项目时,看起来只会更新dist文件夹.deploy文件夹如何更新?

谢谢.

Ant*_*oly 5

我将假设您使用的目录布局类似于Netbeans IDE默认创建的目录布局.

  • dist 是存储生成的存档的文件夹(因此它通过clean和build进行更新).
  • build 文件夹包含已编译的类和资源,但不包含压缩的存档.

默认情况下,Maven将两者的内容放入target文件夹中.

一个deploy文件夹是你把你生成的工件(或档案或目录树具有相同布局的档案,又名爆炸档案),这样你的应用服务器可以为它的地方.

在开发环境中,将服务器配置为扫描dist文件夹以生成工件并重新部署它们并不罕见.因此,从这个意义上说,deploy和dist文件夹可以是相同的.

您甚至可以拥有"就地"部署方案.这可以通过将类直接编译到WEB-INF/classes文件夹内部来实现webapp(具有类似Maven war:inplace目标的东西).如果将服务器设置为扫描此文件夹中的更改,则可以在适当的位置编辑jps等资源,并将其立即反映到正在运行的应用程序中(也就是爆炸工件热部署).

当然,您可以通过指示IDE将资源和已编译的类复制到展开的存档结构并配置服务器进行扫描来完成类似的操作.Netbeans倾向于build/web用于此目的.

此外,有时也不可能进行增量重新部署,并且通常不需要完全重新部署(某些应用程序可能需要几分钟才能重新部署).这就是为什么你可以使用单独的文件夹/将你的工件部署为罐子/战争/耳朵等.

编译,打包和部署是构建生命周期的非常不同的阶段/概念,可能会也可能不会一起发生.

我希望这足以让你前进.

干杯,