2014-11-25 40 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>