有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将maven与java项目结合使用是否会减少战争规模?

目前我们有JavaWeb项目,我们没有使用maven。当我们创建war文件时,它的大小太大了。我想减小这个war文件的大小

我认为这么大的战争规模是因为图书馆(几乎50%或全部)

因此,如果我们使用MAVEN,那么我们的WAR文件大小可能会减小


共 (2) 个答案

  1. # 1 楼答案

    使用Maven不一定会减少你的战争规模。它可能会帮助您消除不再需要的可传递依赖JAR文件,但这只适用于您有这种不必要的依赖关系的情况

    话虽如此,Maven“Shade”插件可以配置为将多个组件JAR组合成一个JAR。。。并从未实际使用的依赖JAR中删除类。查找shade插件的minimizeJar配置参数

    参考:


    我很好奇为什么战争档案的大小是一个问题。web容器JVM将只加载webapp实际使用的类。其他类不会被加载,也不会占用大量JVM内存。当然,臃肿的WAR文件使用的磁盘空间比所需的多,但在典型的web服务器平台上,磁盘空间很便宜

  2. # 2 楼答案

    根据我们在问题下的对话中的评论:

    • 扔掉无用的Lib就行了Maksym 16小时前

    • 为什么war文件的大小对你来说是个问题?-Maksym 16小时前

    • 您是否为您的容器罐使用“提供”范围Maksym 16小时前

    • @Maksym实际上,我们需要在第二周到第三周频繁更新war文件,而实际上客户端服务器位于第三到第四个位置,所以当互联网上传速度较慢时,下载需要花费大量时间。因此,如果尺寸减小,那么这将很快完成——murtaza。webdev 1小时前

    • @Maksym“提供”范围编号–murtaza。webdev 1小时前

    解决方案,将打赌为容器的罐子设置“提供”范围。实际上,强烈建议容器罐使用此范围,以便有正确的工作webapp

    对于容器jar,您应该具有如下依赖关系:

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