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

Java-dist和deploy文件夹之间的区别,java,netbeans,directory,Java,Netbeans,Directory,请原谅我的一个新手问题,但是dist和deploy文件夹之间有什么区别?看起来是一样的——两者都包含文件的.jar。但是,在清理和生成项目时,看起来只有dist文件夹被更新。如何更新部署文件夹 谢谢。通常,一个项目负责创建一个工件,当该工件被构建时,它被放在一个名为target或dist的目录中。当您的项目负责创建一个web应用程序时,您需要一个位置来布局项目中的文件,以便在servlet容器或应用服务器下运行,那个地方就是deploy文件夹。因此dist目录通常会有一个单独的工件,比如war、

请原谅我的一个新手问题,但是dist和deploy文件夹之间有什么区别?看起来是一样的——两者都包含文件的.jar。但是,在清理和生成项目时,看起来只有dist文件夹被更新。如何更新部署文件夹


谢谢。

通常,一个项目负责创建一个工件,当该工件被构建时,它被放在一个名为target或dist的目录中。当您的项目负责创建一个web应用程序时,您需要一个位置来布局项目中的文件,以便在servlet容器或应用服务器下运行,那个地方就是deploy文件夹。因此dist目录通常会有一个单独的工件,比如war、ear或jar,而deploy文件夹会将内容分解成一个目录结构,应用服务器可以在其中使用它们。部署文件夹内容的更新方式取决于构建过程或IDE集成。

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

  • dist
    是存储生成的归档文件的文件夹(因此它会通过清理和生成进行更新)
  • build
    文件夹包含已编译的类和资源,但不包含压缩的存档
默认情况下,Maven会将两者的内容都放在
target
文件夹中

deploy
文件夹是您放置生成的工件(存档或与存档布局相同的目录树,也称为分解存档)的地方,以便您的应用服务器可以为其提供服务

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

您甚至可以有“就地”部署场景。这是通过将类直接编译到
webapp
中的
WEB-INF/classes
文件夹(使用类似Maven
war:inplace
goal的工具)来实现的。如果将服务器设置为扫描此文件夹中的更改,则可以就地编辑JP等资源,并将其立即反映到正在运行的应用程序中(也称为分解工件热部署)

当然,通过指示IDE将资源和编译的类复制到分解的归档结构中,并配置服务器进行扫描,您可以完成类似的任务。Netbeans倾向于使用
build/web
实现这一目的

此外,有时不可能进行增量重新部署,而且通常不希望进行完全重新部署(某些应用程序可能需要几分钟的重新部署)。这就是为什么您可以使用单独的文件夹/将您的工件部署为jar/wars/ear等

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

我希望这是足够的信息,让你去


干杯,

正在使用NetBeans IDE。。