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

做一个网站的费用构成建站用企业级主机好还是服务器

做一个网站的费用构成,建站用企业级主机好还是服务器,网站建设怎么样做账,甘肃网站建设公司电话文章目录 前言一、方案一#xff08;修改自带的spring-boot-maven-plugin插件#xff09;二、方案二#xff08;使用spring-boot-thin-maven-plugin插件#xff09;总结 前言 springboot项目打包一般我们都使用它自带的spring-boot-maven-plugin插件#xff0c;这个插件默… 文章目录 前言一、方案一修改自带的spring-boot-maven-plugin插件二、方案二使用spring-boot-thin-maven-plugin插件总结 前言 springboot项目打包一般我们都使用它自带的spring-boot-maven-plugin插件这个插件默认情况下会把所有的依赖包全部压缩到一个jar里面。在有时这给我们的部署或者更新带来很多的不方便有的项目很大最终的打包文件甚至可以达到几百M有时可能我们只修改了一个小bug,更新时却要上传几百M的安装包极度不方便今天给大家分享几种方案来如何减小我们的打包文件已方便我们的更新操作。 我们构造一个测试项目具体的依赖如下 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdcommons-lang/groupIdartifactIdcommons-lang/artifactIdversion2.6/version /dependency dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.4/version /dependency dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope /dependency默认情况下我们直接运行打包命令 mvn clean -DskipTests package完成后我们检查文件大小 有18M下面我们来进行瘦身处理 一、方案一修改自带的spring-boot-maven-plugin插件 我们可以使用自带的spring-boot-maven-plugin插件进行修改然后再配合另外两个插件这两个插件就是maven-jar-plugin和maven-dependency-plugin可以轻松完成下面我们来具体操作。 在pom.xml文件中的plugins节点下加入下面的配置 pluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfigurationclassesDirectorytarget/classes//classesDirectoryarchivemanifestmainClasscom.example.testmvnpkgexespringboot.TestApplication/mainClass!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 --useUniqueVersionsfalse/useUniqueVersionsaddClasspathtrue/addClasspathclasspathPrefixlib//classpathPrefix/manifestmanifestEntriesClass-Path./Class-Path/manifestEntries/archive/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactIdexecutionsexecutionidcopy-dependencies/idphasepackage/phasegoalsgoalcopy-dependencies/goal/goalsconfigurationtypejar/typeincludeTypesjar/includeTypesoutputDirectory${project.build.directory}/lib/outputDirectoryoverWriteReleasesfalse/overWriteReleasesoverWriteSnapshotsfalse/overWriteSnapshotsoverWriteIfNewertrue/overWriteIfNewer/configuration/execution/executions/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfiguration!--重写包含依赖包含不存在的依赖jar里没有pom里的依赖 --includesincludegroupIdnull/groupIdartifactIdnull/artifactId/include/includeslayoutZIP/layout!--使用外部配置文件jar包里没有资源文件 --addResourcestrue/addResourcesoutputDirectory${project.build.directory}/outputDirectory/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin /plugins下面进行打包 mvn clean -DskipTests package然后再查看文件大小 我们发现文件只有102K而且这里多了一个lib文件那么要运行这个文件lib包就是必须的我们直接运行jar包进行测试 java -jar pkg-sb.jar发现正常启动如果我们把lib包删掉在运行这时就会报错。因此我们在发布项目的时候lib和我们自己的jar必须再同级目录下当然也可以修改maven-jar-plugin中的配置大家可以自行研究。 最后我们使用assembly来制作一个ZIP发布包assembly的配置如下 assembly xmlnshttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsdidpackage/idformatsformatzip/format/formatsincludeBaseDirectorytrue/includeBaseDirectoryfileSetsfileSetdirectory${project.build.directory}/lib/directoryoutputDirectory\lib/outputDirectory/fileSetfileSetdirectory${project.build.directory}/directoryoutputDirectory\/outputDirectoryincludesincludepkg-sb.jar/include/includes/fileSet/fileSets /assembly二、方案二使用spring-boot-thin-maven-plugin插件 这个插件功能比较强大如果你的项目想要弄的高大上一点可以选择这个插件我们先看下效果。 首先在项目的pom.xml里面加入下面配置 plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIddependenciesdependencygroupIdorg.springframework.boot.experimental/groupIdartifactIdspring-boot-thin-layout/artifactIdversion1.0.31.RELEASE/version/dependency/dependencies /plugin plugingroupIdorg.springframework.boot.experimental/groupIdartifactIdspring-boot-thin-maven-plugin/artifactIdversion1.0.31.RELEASE/versionexecutionsexecution!-- Download the dependencies at build time --idresolve/idgoalsgoalresolve/goal/goalsinheritedfalse/inherited/execution/executions /plugin然后我们直接打包 mvn clean -DskipTests package查看打包后的结果 这里我们看jar包只有12k,比方案一的还小,但是下面多了一个thin文件夹打开再看 最下面的repository就是依赖的jar包。如果我们要运行这个jar就需要运行thin/root下的Java包 java -jar target/thin/root/pkg-sb.jar运行结果 2024-01-31 16:51:29.955 INFO 16785 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-01-31 16:51:29.955 INFO 16785 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 635 ms 2024-01-31 16:51:30.087 INFO 16785 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService applicationTaskExecutor 2024-01-31 16:51:30.229 INFO 16785 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 12345 (http) with context path 2024-01-31 16:51:30.232 INFO 16785 --- [ main] c.e.t.TestApplication : Started TestApplication in 1.411 seconds (JVM running for 4.141) 说明启动正常。 下面我们来讲下这个插件的强大之处。 1、spring-boot-thin-maven-plugin的原理其实就是把我们项目中的所有依赖当成转换成maven的本地库 2、如果目标机上安装了maven环境我们可以直接来运行jar包这是这个jar会自动启动maven来下载我们项目中需要的jar依赖包。你可以使用调试模式来启动jar然后观察他的启动过程 调试模式启动 java -jar -Dthin.debugtrue pkg-sb.jar然后运行情况如下 [rootlocalhost test]# java -jar -Dthin.debugtrue pkg-sb.jar Cached launcher found: /root/.m2/repository Using launcher: /root/.m2/repository/org/springframework/boot/experimental/spring-boot-thin-launcher/1.0.31.RELEASE/spring-boot-thin-launcher-1.0.31.RELEASE-exec.jar 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.ThinJarLauncher launch 信息: Version: 1.0.31.RELEASE 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.PathResolver resolve 信息: Extracting dependencies from: jar:file:/root/test/pkg-sb.jar!/, with profiles [] 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.PathResolver loadProperties 信息: Searching for properties in: jar:file:/root/test/pkg-sb.jar!/ 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.PathResolver loadProperties 信息: Searching for properties in: classpath:/ 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.PathResolver loadProperties 信息: Searching for properties in: file:./ 1月 31, 2024 5:02:20 下午 org.springframework.boot.loader.thin.PathResolver extract 信息: Extracting dependencies from: URL [jar:file:/root/test/pkg-sb.jar!/META-INF/maven/org.example/test-sb-lib/pom.xml], with profiles [] 1月 31, 2024 5:02:21 下午 org.springframework.boot.loader.thin.MavenSettingsReader loadSettings 信息: No settings found at: /root/.m2/settings.xml 1月 31, 2024 5:02:22 下午 org.springframework.boot.loader.thin.DependencyResolver dependencies 信息: Computing dependencies from pom and properties 1月 31, 2024 5:03:11 下午 org.springframework.boot.loader.thin.DependencyResolver dependencies 信息: Resolved: org.springframework.boot:spring-boot-starter-web:2.2.5.RELEASE/root/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.2.5.RELEASE/spring-boot-starter-web-2.2.5.RELEASE.jar 1月 31, 2024 5:03:11 下午 org.springframework.boot.loader.thin.DependencyResolver dependencies 信息: Resolved: org.springframework.boot:spring-boot-starter:2.2.5.RELEASE/root/.m2/repository/org/springframework/boot/spring-boot-starter/2.2.5.RELEASE/spring-boot-starter-2.2.5.RELEASE.jar 1月 31, 2024 5:03:11 下午 org.springframework.boot.loader.thin.DependencyResolver dependencies 这里他自动去下载了我们项目依赖的jar包并自动存放到${user.home}/.m2 下面 3、我们可以手动指定依赖库的位置启动命令如下 java -jar -Dthin.debugtrue -Dthin.root. pkg-sb.jar 这样他会启动maven把依赖库下载到我当前的目录下 4、还可以手动指定去下载依赖库的maven仓库地址命令如下 java -jar -Dthin.debugtrue -Dthin.root. -Dthin.repohttp://192.168.101.170:8081/repository/maven-public pkg-sb.jar 这里我们使用了前面我们自己搭建的私有库因此我们能很好的去控制项目的运行。 5、也可以采用离线模式去运行这就需要我们要把打包后产生的依赖一起进行打包这种方式和方案一的模式一样但是这种对目标机就没有maven环境的依赖,我们再使用assembly来制作一个ZIP的发布包 assembly xmlnshttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsdidpackage/idformatsformatzip/format/formatsincludeBaseDirectorytrue/includeBaseDirectoryfileSetsfileSetdirectory${project.build.directory}/thin//directoryoutputDirectory\/outputDirectory/fileSet/fileSets /assembly6、spring-boot-thin-maven-plugin的更多用法大家可以参照官网点击这里 总结 1、以上给大家分享了2中瘦身方案反正各自都有一定的缺点和优点大家根据实际情况进行选择 2、方案一比较传统整个过程中规中矩没什么亮点但实用性很强缺点就是如果有新增依赖在更新的时候就需要更新lib下的jar包需要把新增的加入进去。 3、方案二很有创意而且功能很强大能玩出很多姿势来如果采用离线模式也就和方案一没区别采用在线模式缺点就是要依赖maven环境但是也可以将maven和项目整个打包然后编写脚本来实现自带maven环境。大家可以自己去尝试。 4、这两种方式都能实现对springboot项目的瘦身处理对更新来说方便很多。 5、如果有自己的私有库我们可以把项目进行分模块化处理核心业务用一个单独的jar来实现这样方案二能利用maven实现优雅更新 6、虽然有的同学会想到利用docker来运行对更新来说也很方便其实方式二也将maven环境打入docker镜像然后利用在线模式来运行这样可以大大减少docker镜像的大小后面的章节我们可以继续来研究
http://www.zqtcl.cn/news/945251/

相关文章:

  • 洛阳设计网站公司建设银行网站 购买外汇
  • 做视频网站的备案要求吗给工厂做代加工
  • 网站建设技术外包西安推荐企业网站制作平台
  • 建立一个做笔记的网站石家庄网站优化
  • 服务器创建多个网站吗中铁雄安建设有限公司网站
  • 建湖建网站的公司网站建设人工费
  • 沈阳公司网站设计公司怎么投放广告
  • 上海哪家做网站关键词排名如何做简洁网站设计
  • 网站维护的内容seo网站关键词优化哪家好
  • 东阳市网站建设西安做网站选哪家公司
  • 宁津网站开发万能应用商店下载
  • 专业制作标书网站地图优化
  • 广州建网站兴田德润团队什么是网络营销详细点
  • win7建网站教程wordpress chrome插件开发
  • 免费行情软件网站下载视频公司介绍ppt制作模板
  • wordpress快速建站wordpress短代码可视化
  • 餐饮型网站开发比较好看的网页设计
  • 网站管理包括潍坊网站建设优化
  • 南开集团网站建设网站服务器搭建
  • 网络的最基本定义泰安seo网络公司
  • 国外比较好的资源网站请人做外贸网站应注意什么问题
  • 人网站设计与制作什么是销售型网站
  • 最简单网站开发软件有哪些企业电子商务网站建设问题
  • 玉林网站制作简单的网站制作代码
  • 滨州建设厅网站长沙好的做网站品牌
  • 教务系统网站建设模板下载为网站开发
  • 成都市建设招标网站加载wordpress外部文件
  • 网站做兼容处理怎么浙江seo博客
  • 设计商城的网站建设电商网站建设与管理实践
  • 怎样建一个英文网站制作视频的手机软件