手机网站微信支付代码,vps运行wordpress,python做网站方便吗,html5移动网站开发实践本文讲诉如何把jar里的lib依赖包独立出来#xff0c;方便更新服务时#xff0c;缩小jar的体积#xff0c;下面以若依的system服务为例#xff0c;配置中的路径请酌情修改#xff0c;主要提供大致配置逻辑
第一步#xff1a;修改项目的pom.xml#xff0c;调整build的配…本文讲诉如何把jar里的lib依赖包独立出来方便更新服务时缩小jar的体积下面以若依的system服务为例配置中的路径请酌情修改主要提供大致配置逻辑
第一步修改项目的pom.xml调整build的配置
buildfinalName${project.artifactId}/finalNameplugins!--这是默认的打包方式--
!-- plugin--
!-- groupIdorg.springframework.boot/groupId--
!-- artifactIdspring-boot-maven-plugin/artifactId--
!-- version${spring-boot.version}/version--
!-- executions--
!-- execution--
!-- goals--
!-- goalrepackage/goal--
!-- /goals--
!-- /execution--
!-- /executions--
!-- /plugin--!-- 以下是分离lib的打包方式 --plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexecutabletrue/executablelayoutZIP/layout!--解决windows命令行窗口中文乱码--jvmArguments-Dfile.encodingUTF-8/jvmArguments!--这里是填写需要包含进去的jar必须项目中的某些模块会经常变动那么就应该将其坐标写进来如果没有则nothing 表示不打包依赖 --includesincludegroupIdnothing/groupIdartifactIdnothing/artifactId/include/includes/configuration/plugin!--拷贝依赖到jar外面的lib目录--plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-dependency-plugin/artifactIdexecutionsexecutionidcopy/idphasepackage/phasegoalsgoalcopy-dependencies/goal/goalsconfiguration!--指定的依赖路径--outputDirectory${project.build.directory}/lib/outputDirectoryexcludeScopeprovided/excludeScope/configuration/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfigurationarchivemanifest!--指定启动类--mainClassorg.dromara.system.RuoYiSystemApplication/mainClassaddClasspathtrue/addClasspathclasspathPrefixlib//classpathPrefix/manifest/archive/configuration/plugin/plugins/build
打包后会得到分离的jar和lib 打开jar里的MANIFEST.MF可看到指定了依赖包的路径
第二步构建dockerfile不同的就是复制lib目录到镜像中
# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
#FROM bellsoft/liberica-openjdk-debian:21.0.3-cds
#FROM findepi/graalvm:java17-nativeLABEL maintainerGavinoRUN mkdir -p /gavino/system/logs \/gavino/system/temp \/gavino/skywalking/agentWORKDIR /gavino/systemENV SERVER_PORT9201 LANGC.UTF-8 LC_ALLC.UTF-8 JAVA_OPTSEXPOSE ${SERVER_PORT}#复制依赖 jar
COPY ${OUT_DIRECTORY}/lib ./libADD ruoyi-system.jar ./app.jarENTRYPOINT java -Djava.security.egdfile:/dev/./urandom -Dserver.port${SERVER_PORT} \#-Dskywalking.agent.service_nameruoyi-system \#-javaagent:/gavino/skywalking/agent/skywalking-agent.jar \-XX:HeapDumpOnOutOfMemoryError -XX:UseZGC ${JAVA_OPTS} \-jar app.jar
项目运行时会根据MANIFEST.MF中配置的路径加载依赖包所以只需要复制lib到相应目录 第三步编写docker-compose注意dockerfile的路径以及网络配置以下是我的配置酌情修改
version: 3services:ruoyi-system:container_name:ruoyi-systembuild:context: /cloud-pck/ruoyi-cloud/systemdockerfile: Dockerfileenvironment:# 时区上海TZ: Asia/Shanghaivolumes:# 配置文件- /docker/ruoyi-system/logs/:/gavino/system/logs# skywalking 探针- /docker/skywalking/agent/:/gavino/skywalking/agentprivileged: truenetworks:- ruoyi-cloud-netnetworks:ruoyi-cloud-net:external: true