瘦身部署应用

概述

  每一个应用都会引入很多依赖jar包,而且其中大多数都是相同的,这样会导致部署时会花费很长的时间。瘦身部署指的是将第三方jar包依赖剔除,只保留业务接口依赖jar包进行打包部署。

剔除第三方依赖jar包

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.2</version>
        <configuration>
          <!--
            Exclude JCL and LOG4J since all logging should go through SLF4J.
            Note that we‘re excluding log4j-<version>.jar but keeping
            log4j-over-slf4j-<version>.jar
          -->
          <packagingExcludes>
            WEB-INF/lib/commons-logging-*.jar,
            %regex[^WEB-INF/lib/bussiness-(?!webapp-1|webapp-2).*.jar]
          </packagingExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

Tomcat共享类加载器

【1】catalina.properties 文件

# List of comma-separated paths defining the contents of the "shared"
# classloader. Prefixes should be used to define what is the repository type.
# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
# the "common" loader will be used as Catalina‘s "shared" loader.
# Examples:
#     "foo": Add this folder as a class repository
#     "foo/*.jar": Add all the JARs of the specified folder as class
#                  repositories
#     "foo/bar.jar": Add bar.jar as a class repository
# Please note that for single jars, e.g. bar.jar, you need the URL form
# starting with file:.
#
# Note: Values may be enclosed in double quotes ("...") in case either the
#       ${catalina.base} path or the ${catalina.home} path contains a comma.
#       Because double quotes are used for quoting, the double quote character
#       may not appear in a path.
shared.loader="${catalina.base}/shared","${catalina.base}/shared/*.jar","${catalina.home}/shared","${catalina.home}/shared/*.jar"

 【2】创建 shared 目录将第三方jar包放到这里

参考

http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html

原文地址:https://www.cnblogs.com/BINGJJFLY/p/10481649.html

时间: 2024-11-03 23:52:13

瘦身部署应用的相关文章

SpringBoot系列之—瘦身部署

一.前言SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼: 编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了. 这个时候如果想要对线上运行工程有一些微调,则非常痛苦, :( 二.瘦身前的Jar包Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可以的- SpringBoot编译出来的Jar包中,磁盘占用大的,是一些外部依赖库(jar包),例

.NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记

一,.NET Core 自宿主应用程序个头很大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标程序不带.net core运行环境,所以“个头”很小,可能只有几十K几百K字节,但是它需要用户的目标系统上安装.NET CORE 框架:自宿主式发布出来的程序,自带运行时和框架类库,自成一体,不需要客户机安装.NET CORE环境,部署简单方便. 看看一个简单的“Hello World!” 控制台程序有多大: 修改 csproj文件,添加目标系统: 用

dotnet core瘦身发布

原文:dotnet core瘦身发布 需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self-contained true /p:TrimUnusedDependencies=true发布完成之后,实际上还是有不少dll文件,只不过由原来的200多个减少了70多个. 然后还有个瘦身的方法项目地址https://github.com/dgiagio/war

SpringBoot Jar包瘦身 - 跟大文件说再见!

前言 SpringBoot部署起来配置非常少,如果服务器部署在公司内网,上传速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼.就是 编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了.这个时候如果想要对线上运行工程有一些微调,则非常痛苦 可以用以下方法减少jar内容 瘦身准备 1.首先我们要对Jar包有一个初步认识,它的内部结构如下 example.jar | +-META-INF | +-MANIFEST.MF +-org | +

怎样给你的Android 安装文件(APK)瘦身

本文源地址:怎样给你的Android 安装文件(APK)瘦身 Android的apk文件越来越大了这已经是一个不争的事实. 在Android 还是最初版本号的时候,一个app的apk文件大小也还仅仅有2 MB左右,到了如今.一个app的apk文件大小已经升级到10MB到20MB这个范围了.apk文件大小的爆炸式增长主要是由于用户对app质量的期待越来越高以及开发人员的开发经验增长,详细体如今下面几个方面: Android设备 dpi 的多样化 ([l|m|tv|h|x|xx|xxx]dpi) A

iOS安装包瘦身的那些事儿

在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100M.对于超过100M的安装包,只能在WIFI环境下下载,不能直接通过4G网络进行下载. 在这里,我们提交App Store的安装包大小为67.6MB,在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小

Python在七牛云平台的应用(二)图片瘦身

(一)七牛云平台的图片瘦身功能简介:(引用自官网) 针对jpeg.png格式图片 瘦身后分辨率不变,格式不变. 肉眼画质不变. 图片体积大幅减少,节省 CDN 流量 官网给的图片压缩率很高,官网给的「葡萄」图片瘦身在不改变分辨率和格式的情况下压缩率为65.49%,我自己测试了一张小图在后文中会有,原来的大小在「22kb」压缩后为「18kb」,据一般情况来看,压缩率虽然没有官网给的那么夸张,但是也能基本达到80%左右,所以这个压缩率还是很不错的. (二)需求分析 我们可以设想几个场景 『1:当你在

如何给你的Android 安装文件(APK)瘦身

如何给你的Android 安装文件(APK)瘦身 本文翻译自:Putting Your APKs on Diet           原作者:Cyril Mottier Android的apk文件越来越大了这已经是一个不争的事实.在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB到20MB这个范围了.apk文件大小的爆炸式增长主要是因为用户对app质量的期待越来越高以及开发者的开发经验增长,具体体现在以下几

iOS:使用MVC模式帮ViewController瘦身

如何给UIViewController瘦身 随着程序逻辑复杂度的提高,你是否也发现了App中一些ViewController的代码行数急剧增多,达到了2,3千行,甚至更多.这时如果想再添加一点功能或者修改现有逻辑变得让人无比头疼.如果你遇到了这类问题,那是时候停下来了,思考一下如何更好地组织代码,给VC瘦身.本文将会阐述如何结合MVC的思想帮你的VC瘦身同时提高复用和可扩展性. 一.开发中常见的现象和缺点 iOS中最常见的一种设计模式就是MVC,但在实际开发过程中,我们因为这样.那样的原因让单纯