2011-09-16 94 views
7

請原諒我的一個新手問題,但dist和deploy文件夾之間有什麼區別?它看起來是一樣的 - 都包含文件的.jar。但是,當您清理並構建項目時,看起來只有dist文件夾已更新。部署文件夾如何更新?Java - dist和deploy文件夾之間的區別

謝謝。

+0

正在使用NetBeans IDE .. –

回答

5

我將假設您使用的目錄佈局與Netbeans IDE默認創建的類似。

  • dist是存儲生成的存檔的文件夾(因此它通過清理和構建進行更新)。
  • build文件夾包含已編譯的類和資源,但不包含壓縮的存檔。

默認情況下,Maven將兩者的內容放置到一個target文件夾中。

A deploy文件夾是您將生成的構件(歸檔或目錄樹與歸檔相同的佈局,a.k.a.分解歸檔)放置的位置,以便應用服務器可以爲其提供服務。

在開發環境中,配置服務器掃描dist文件夾生成的構件並重新部署它們並不少見。因此,從這個意義上講,部署和遠程文件夾可以是相同的。

您甚至可以擁有「就地」部署方案。這可以通過編譯你的課程直接到WEB-INF/classes文件夾裏面webapp(像Maven war:inplace目標)。如果您將服務器設置爲掃描此文件夾中的更改,則可以編輯諸如jps之類的資源,並立即將其反映到正在運行的應用程序中(又名爆炸工件熱部署)。

當然,您可以通過指示您的IDE將資源和編譯類複製到展開的歸檔結構並配置服務器來掃描它,從而完成類似的操作。 Netbeans往往爲此使用build/web

此外,有時也不可能進行增量重新部署,並且通常不需要全面重新部署(某些應用程序可能需要幾分鐘的時間才能重新部署)。這就是爲什麼你可以使用單獨的文件夾/部署你的文物作爲罐子/戰爭/耳朵等。

編譯,打包和部署是一個非常不同的階段/構建生命週期的概念,可能會或可能不會一起發生。

我希望這是足夠的信息,讓你去。

乾杯,

+0

謝謝,這是非常豐富的。 :) –

4

通常情況下,一個項目負責創建一個工件,當該工件被構建時,它被放置在一個名爲target或dist的目錄中。當您的項目負責創建Web應用程序時,您需要一個位置來佈局項目中的文件以在您的Servlet容器或應用程序服務器下運行,並且該位置是deploy文件夾。因此,dist目錄通常會有一個像war,ear或jar這樣的工件,而deploy文件夾將使內容在應用服務器可以使用它們的目錄結構中爆炸。部署文件夾內容的更新方式取決於您的構建過程或IDE集成。

相關問題