2014-11-25 80 views
0

目前我們有java web項目,我們沒有使用maven。當我們創建戰爭文件時,它的大小太大了。我想減少這個戰爭文件的大小。正在使用maven與java項目減小戰爭規模?

我覺得這麼多的戰爭規模是因爲圖書館(幾乎50%或總數)。

所以有可能如果我們使用MAVEN,那麼我們的WAR FILE SIZE將會降低。

+0

就扔掉沒用庫。 – Maksym 2014-11-25 14:56:06

+0

爲什麼戰爭檔案的大小對你來說是個問題? – Maksym 2014-11-25 14:56:53

+0

您是否爲您的容器罐使用「提供」範圍? – Maksym 2014-11-25 14:58:17

回答

1

使用Maven不一定會減小WAR大小。它可以幫助您消除不再需要的傳遞依賴JAR文件,但只有在具有這種不必要的依賴關係時才適用。

話雖如此,Maven「Shade」插件可以配置爲將多個組件JAR組合成單個JAR ...並從實際未使用的依賴JAR中刪除類。查找陰影插件的minimizeJar配置參數。

參考:


我很好奇,爲什麼WAR文件的大小是一個問題。 Web容器JVM將只加載Web應用程序實際使用的類。其他類不會被加載,也不會使用大量的JVM內存。當然,臃腫的WAR文件使用的磁盤空間比必要的要多,但在典型的Web服務器平臺上磁盤空間便宜。

0

按照問題下我們的意見的對話:

  • 就扔掉沒用庫。 - Maksym 16小時前

  • 爲什麼戰爭文件的大小對你來說是個問題? - Maksym 16小時前

  • 您是否爲您的容器罐使用「提供」範圍? - Maksym 16小時前

  • @Maksym實際上我們需要在第二週三次更新戰爭文件,而實際上客戶端服務器在三個四個地方,所以當互聯網變慢時,上傳下載需要花費很長時間。所以如果大小減少,那麼這將快速完成 - murtaza.webdev 1小時前

  • @Maksym「provided」scope no。 - murtaza.webdev 1小時前

解決方案,可以打賭,設立「規定」範圍的容器罐。實際上,強烈建議將這個範圍用於容器罐,以便有正確的工作webapp。

你應該有這樣的依賴於容器罐:

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>${servlet-api-version}</version> 
    <scope>provided</scope> 
</dependency>