当前位置: 首页 > news >正文

昭通网站开发公司影视网站如何做seo

昭通网站开发公司,影视网站如何做seo,网站平台推广,新闻评论经典重庆论坛瘦身Spring Boot应用(thinJar) 简介 我们使用Spring Boot提供的spring-boot-maven-plugin打包Spring Boot应用#xff0c;可以直接获得一个完整的可运行的jar包#xff0c;把它上传到服务器上再运行就极其方便。 但是这种方式也不是没有缺点。最大的缺点就是包太大了…瘦身Spring Boot应用(thinJar) 简介 我们使用Spring Boot提供的spring-boot-maven-plugin打包Spring Boot应用可以直接获得一个完整的可运行的jar包把它上传到服务器上再运行就极其方便。 但是这种方式也不是没有缺点。最大的缺点就是包太大了动不动几十MB在网速不给力的情况下上传服务器非常耗时。并且其中我们引用到的Tomcat、Spring和其他第三方组件只要版本号不变这些jar就相当于每次都重复打进去再重复上传了一遍。 真正经常改动的代码其实是我们自己编写的代码。如果只打包我们自己编写的代码通常jar包也就几百KB。但是运行的时候classpath中没有依赖的jar包肯定会报错。 所以问题来了如何只打包我们自己编写的代码同时又自动把依赖包下载到某处并自动引入到classpath中。解决方案就是使用spring-boot-thin-launcher。 项目地址: https://github.com/spring-projects-experimental/spring-boot-thin-launcher 使用spring-boot-thin-launcher 我们先演示如何使用spring-boot-thin-launcher再详细讨论它的工作原理。 修改build-plugins-plugin给原来的spring-boot-maven-plugin增加一个dependency如下 project ......buildfinalNameawesome-app/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIddependenciesdependencygroupIdorg.springframework.boot.experimental/groupIdartifactIdspring-boot-thin-layout/artifactIdversion1.0.31.RELEASE/version/dependency/dependencies/plugin/plugins/build /project不需要任何其他改动了我们直接按正常的流程打包执行mvn clean package观察target目录最终生成的可执行simple-0.0.1-SNAPSHOT.jar只有79KB左右。 直接运行java -jar simple-0.0.1-SNAPSHOT.jar显然79KB的jar肯定无法放下Tomcat和Spring这样的大块头。那么运行时这个simple-0.0.1-SNAPSHOT.jar又是怎么找到它自己依赖的jar包呢 实际上spring-boot-thin-launcher这个插件改变了spring-boot-maven-plugin的默认行为。它输出的jar包只包含我们自己代码编译后的class一个很小的ThinJarWrapper以及解析pom.xml后得到的所有依赖jar的列表。 运行的时候入口实际上是ThinJarWrapper它会先在指定目录搜索看看依赖的jar包是否都存在如果不存在先从Maven中央仓库下载到本地然后再执行我们自己编写的main()入口方法。这种方式有点类似很多在线安装程序用户下载后得到的是一个很小的exe安装程序执行安装程序时会首先在线下载所需的若干巨大的文件再进行真正的安装。 这个spring-boot-thin-launcher在启动时搜索的默认目录是用户主目录的.m2我们也可以指定下载目录例如将下载目录指定为当前目录 $ java -Dthin.root. -jar simple-0.0.1-SNAPSHOT.jar上述命令通过环境变量thin.root传入当前目录执行后发现当前目录下自动生成了一个repository目录这和Maven的默认下载目录~/.m2/repository的结构是完全一样的只是它仅包含simple-0.0.1-SNAPSHOT.jar所需的运行期依赖项。 注意只有首次运行时会自动下载依赖项再次运行时由于无需下载所以启动速度会大大加快。如果删除了repository目录再次运行时就会再次触发下载。 预热 把79KB大小的simple-0.0.1-SNAPSHOT.jar直接扔到服务器执行上传过程就非常快。但是第一次在服务器上运行simple-0.0.1-SNAPSHOT.jar时仍需要从Maven中央仓库下载大量的jar包所以spring-boot-thin-launcher还提供了一个dryrun选项专门用来下载依赖项而不执行实际代码 java -Dthin.tracetrue -Dthin.forcetrue -Dthin.dryruntrue -Dthin.root. -jar simple-0.0.1-SNAPSHOT.jar执行上述代码会在当前目录创建repository目录并下载所有依赖项但并不会运行我们编写的main()方法。此过程称之为“预热”warm up。 如果服务器由于安全限制不允许从外网下载文件那么可以在本地预热然后把simple-0.0.1-SNAPSHOT.jar和repository目录上传到服务器。只要依赖项没有变化后续改动只需要上传simple-0.0.1-SNAPSHOT.jar即可。 Gradle方式 配置 build.gradle 在 Gradle 中您需要添加 thin-launcher 插件和最好具有显式发布定义的 maven-publish 插件。 plugins {...id maven-publishid org.springframework.boot.experimental.thin-launcher version 1.0.31.RELEASE }...repositories {mavenLocal()mavenCentral()maven { url https://repo.spring.io/snapshot }maven { url https://repo.spring.io/milestone } }...publishing {publications {maven(MavenPublication) {from components.java}} }使用 Gradle 打 thin 包 Gradle 执行 thinJar 任务: ./gradlew thinJar使用 Gradle 打 thin 包 并下载所有依赖项 如果我们将 Gradle 与 Thin-Launcher 插件一起使用则我们有一个 ThinResolve 任务可用。该任务会将应用程序及其依赖项保存在 build/thin/root/ 目录中类似于上一节的 Maven 插件 gradlew thinResolve cd build/thin/deploy $ java -Dthin.root. -jar simple-0.0.1-SNAPSHOT.jar命令行选项 您可以在命令行或系统属性 ( -D... ) 上设置各种选项。 thin.* 属性在调用主类之前全部从命令行中删除因此主类不必知道它是如何启动的。 Option 选项Default 默认Description 描述thin.mainStart-Class in MANIFEST.MF MANIFEST.MF 中的启动类要启动的主类对于 Spring Boot 应用程序通常是带有 SpringBootApplication 的类thin.dryrunfalse仅解决并下载依赖项。不要运行任何主类。注意除“false”甚至为空之外的任何值都是 true。thin.offlinefalse切换到“离线”模式。所有依赖项必须在本地可用例如通过之前的试运行否则将会出现异常。thin.forcefalse强制进行依赖项解析即使依赖项已被计算并在 thin.properties 中标记为“已计算”。thin.classpathfalse只打印类路径。不要运行主类。支持两种格式“路径”和“属性”。为了向后兼容“true”或空相当于“path”。thin.root${user.home}/.m2本地 jar 缓存的位置布置为 Maven 存储库。如果不存在启动器会在此处创建一个名为“repository”的新目录。thin.libsempty在运行时附加的其他类路径条目的形式与您在 java -classpath ... 中使用的形式相同。如果定义了此属性则在计算类路径时将忽略未解析的依赖项可能会导致运行时类未找到异常。thin.archivethe same as the target archive要启动的存档。例如可用于启动使用不同版本的瘦启动器构建的 JAR 文件或由 Spring Boot 在不使用瘦启动器的情况下构建的胖 jar 文件。thin.parentempty用于依赖关系管理和公共类路径条目的父存档。如果您运行具有相同父级的两个应用程序它们将具有相同的类路径从左到右读取直到它们实际上不同。thin.locationfile:.,classpath:/包含精简属性文件的目录路径按照 thin.name 作为资源位置目录的逗号分隔列表。将搜索这些位置以及相对于 /META-INF 的相同路径。thin.name“thin”用于搜索依赖项规范和覆盖的属性文件的名称。thin.profile用于查找精简属性的以逗号分隔的配置文件列表。例如。如果 thin.profilefoo 启动器搜索名为 thin.properties 和 thin-foo.properties 的文件。thin.libraryorg.springframework.boot.experimental:spring-boot-thin-launcher:1.0.31.RELEASE启动器库的定位器。可以是 Maven 坐标带有可选的 maven:// 前缀也可以是文件带有可选的 file:// 前缀。thin.repohttps://repo.spring.io/snapshot (also contains GA releases)thin.library 的基本 URL如果它是 Maven 形式默认。thin.launcherorg.springframework.boot.thin.ThinJarLauncherthin.library 中的主类。如果未指定则从清单 Main-Class 属性中发现。thin.parent.firsttrue表示类加载器是“父级优先”的标志即系统类加载器将用作默认值。这是“标准”JDK 类加载器策略。将其设置为 false 类似于 Web 容器和应用程序服务器中通常使用的设置。thin.parent.boottrue标志表明父类加载器应该是引导类加载器而不是“系统”类加载器。引导加载程序通常包含 JDK 类但不包含目标存档也不包含在命令行上添加的任何代理 jar。thin.debugfalse (like in Spring Boot).br标记以在依赖关系解析期间打开一些稍微详细的日志记录。也可以使用 debug 打开就像在 Spring Boot 中一样。thin.tracefalse超级详细地记录依赖项解析和启动过程中的所有活动。也可以使用 trace 打开。
http://www.hkea.cn/news/14574247/

相关文章:

  • 网站建设总体说明书益阳做网站怎么便宜
  • 怎么给网站做快照整个网站与网站模板的区别
  • 有个新网站专门做外贸的叫什么比较好的h5网站
  • 网站换空间有影响吗免费 网站 空间
  • 海报设计素材网站免费门户网站建设费用科目
  • 邓州市建设局网站国际物流东莞网站建设
  • erlang做网站优势网站优化培训班
  • 建设网站需要哪些手续教学网站开发源码
  • 方正网站制作电子商务网站开发软件
  • 天津电商网站制作泉州网站建设托管
  • wordpress无刷新分页济南官网seo推广
  • 手机设计企业网站做网站的系统功能需求
  • 东莞海天网站建设有什的自学做网站
  • 手机触屏网站幻灯片常见门户网站的基本功能
  • 高端品牌网站建设集团温州营销网站公司哪家好
  • 建设银行 钓鱼网站下面哪个是h5轻设计平台
  • 徐州建设网站资源下载wordpress
  • 怎么把网站源码扒下来门户网站的特征
  • 网站建设要多少费用做推广哪个平台好
  • c 做商务网站方便吗个人简历可编辑免费
  • 小学学校网站模板免费下载大兴安岭网站建设
  • 什么系统做购物网站好网站前台代码
  • 企业门户网站系统深圳安嘉建设有限公司网站
  • 做网站的公司倒闭西充建设局网站
  • 福建微网站建设公司wordpress widgetkit
  • 网站 百度认证百度账号查询
  • 福建银瑞建设工程有限公司网站毕业ppt模板免费下载
  • 简洁的门户网站四川鼎能建设集团网站
  • 林业建设协会网站公众号公众平台
  • 网站建设公司推荐互赢网络网站空间购买官方