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

2023网站seo做集团网站的

2023网站seo,做集团网站的,东城区网站排名seo,南京老牌网站建设公司本篇和大家分享的是springboot打包并结合shell脚本命令部署#xff0c;重点在分享一个shell程序启动工具#xff0c;希望能便利工作#xff1b;profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具linux上使用shenniu_publish.…本篇和大家分享的是springboot打包并结合shell脚本命令部署重点在分享一个shell程序启动工具希望能便利工作profiles指定不同环境的配置maven-assembly-plugin打发布压缩包分享shenniu_publish.sh程序启动工具linux上使用shenniu_publish.sh启动程序profiles指定不同环境的配置通常一套程序分为了很多个部署环境开发测试uat线上 等我们要想对这些环境区分配置文件可以通过两种方式通过application.yml中编码指定 profile.activeuat 方式指定通过mvn中profiles来区分不同环境对应的配置文件夹人工可以手动在idea勾选生成不同环境的包(推荐)这里我们要讲的是第二种首先在mvn中配置如下内容                    node                                            node                ${scripts_packageName}                ${scripts_bootMain}                                        true                                        node1                            node1                ${scripts_packageName}                ${scripts_bootMain}                                        node2                            node2                ${scripts_packageName}                ${scripts_bootMain}                        节点粗解id用来指定不同环境配置文件所在的目录如下我这里properties该节点中的节点是可作为参数传递给其他配置文件如我这里的package-name节点值就可以在另外的assembly.xml或者shell脚本文件中通过${package-name}获取到如下activeByDefault指定默认环境配置文件夹maven-assembly-plugin打发布压缩包对于springboot程序打包可以分为jar和war这里是jar包有场景是咋们配置文件或者第三方等依赖包不想放到工程jar中并且把这些文件压缩成一个zip包方便上传到linux此时通过maven-assembly-plugin和maven-jar-plugin就可以做到mvn的配置如                org.apache.maven.plugins                maven-jar-plugin                2.6                                                            false                                                    true                            lib/                            ${scripts_bootMain}                                                                                                            **/*.yml                        **/*.properties                        **/*.xml                        **/*.sh                                                                                                make-a-jar                        compile                                                    jar                                                                                                    org.apache.maven.plugins                maven-assembly-plugin                2.4                                                                                                ${project.basedir}/src/main/assembly/assembly.xml                                                                                                make-assembly                        package                                                    single                                                                        值得注意的地方如下几点mainClass节点用来指定启动main函数入口类路径如这里的com.sm.EurekaServerApplicationexcludes节点排除主jar包中配置等一些列后缀文件因为我们要包这些配置文件放到主包外面descriptor节点用来指定assembly插件对应的assembly.xml配置文件有了上面mvn配置我们还需要assembly.xml的配置这里提取了结合shell脚本发布程序的配置    ${activeProfile}                zip            false                                    false            ${package-name}-${activeProfile}/lib            false                                            ${project.basedir}/src/main/profiles/${activeProfile}            ${package-name}-${activeProfile}/conf                            **/*                                                                                                ${project.basedir}/src/main/scripts                                        **/*                                    777                        777                        true                                    ${project.build.directory}            ${package-name}-${activeProfile}/                            *.jar                        重点节点介绍formats节点把配置文件和jar包等压缩成什么文件格式这里可以有ziptar等fileMode节点指定scripts目录下脚本文件(这里是shenniu_publish.sh)在linux上文件权限为777filtered节点脚本中参数变量为pom的profiles中properties的值(该配置是把mvn中属性值映射生成到sh文件中如${package-name})完成上面配置后此时我们可以通过idea上勾选切换不同环境来打zip包如图分享shenniu_publish.sh程序启动工具上面步骤完成了zip格式的发布包我们再分享下启动程序的shell脚本该脚本具有的功能如解压zip启动jar包启动jar包停止对应jar运行重启jar程序目前该shell中封装了两种启动jar命令的方式java -cpjava -jar如图命令格式来看全部的shell代码#!/usr/bin/env bash#可变参数变量languageTypejavac #支持 java,javac,netcore 发布#参数值由pom文件传递baseZipName${package-name}-${activeProfile} #压缩包名称  publish-test.zip的publishpackageName${package-name} #命令启动包名 xx.jar的xxmainclass${boot-main} #java -cp启动时指定main入口类;命令java -cp conf;lib*.jar;${packageName}.jar ${mainclass}#例子# baseZipNamepublish-test #压缩包名称  publish-test.zip的publish# packageNamepublish #命令启动包名 publish.jar的xx#固定变量basePath$(cd dirname $0/; pwd)baseZipPath${basePath}/${baseZipName}.zip  #压缩包路径baseDirPath${basePath} #解压部署磁盘路径pid #进程pid#解压function shenniu_unzip(){    echo 解压---------------------------------------------    echo 压缩包路径${baseZipPath}    if [ ! find ${baseZipPath} ]    then        echo 不存在压缩包${baseZipPath}    else        echo 解压磁盘路径${baseDirPath}/${baseZipName}        echo 开始解压...        #解压命令        unzip -od ${baseDirPath}/${baseZipName} ${baseZipPath}        #设置执行权限        chmod x ${baseDirPath}/${baseZipName}/${packageName}        echo 解压完成。      fi}#检测pidfunction getPid(){    echo 检测状态---------------------------------------------    pidps -ef | grep -n ${packageName} | grep -v grep | awk {print $2}    if [ ${pid} ]     then        echo 运行pid${pid}    else        echo 未运行    fi}#启动程序function start(){    #启动前先停止之前的    stop    if [ ${pid} ]    then        echo 停止程序失败无法启动    else        echo 启动程序---------------------------------------------        #选择语言类型        read -p 输入程序类型(java,javac,netcore)下一步按回车键(默认${languageType}) read_languageType        if [ ${read_languageType} ]        then            languageType${read_languageType}        fi        echo 选择程序类型${languageType}        #进入运行包目录        cd ${baseDirPath}/${baseZipName}        #分类启动        if [ ${languageType}  javac ]         then            if [ ${mainclass} ]             then                nohup java -cp conf:lib*.jar:${packageName}.jar ${mainclass} ${baseDirPath}/${packageName}.out 21                #nohup java -cp conf:lib*.jar:${packageName}.jar ${mainclass} /dev/null 21             fi        elif [ ${languageType}  java ]         then            nohup java -jar ${baseDirPath}/${baseZipName}/${packageName}.jar /dev/null 21             # java -jar ${baseDirPath}/${baseZipName}/${packageName}.jar        elif [ ${languageType}  netcore ]         then            #nohup dotnet run ${baseDirPath}/${baseZipName}/${packageName} /dev/null 21             nohup ${baseDirPath}/${baseZipName}/${packageName} /dev/null 21         fi        #查询是否有启动进程        getPid        if [ ${pid} ]        then            echo 已启动            #nohup日志            tail -n 50 -f ${baseDirPath}/${packageName}.out        else            echo 启动失败        fi    fi}#停止程序function stop(){    getPid    if [ ${pid} ]     then        echo 停止程序---------------------------------------------        kill -9 ${pid}        getPid        if [ ${pid} ]         then            #stop            echo 停止失败        else            echo 停止成功        fi    fi}#启动时带参数根据参数执行if [ ${#} -ge 1 ] then    case ${1} in        start)             start        ;;        restart)             start        ;;        stop)             stop        ;;        unzip)             #执行解压            shenniu_unzip            #执行启动            start        ;;        *)             echo ${1}无任何操作        ;;    esacelse    echo     command如下命令    unzip解压并启动    start启动    stop停止进程    restart重启    示例命令如./shenniu_publish start    fi正如上面小节说的shell中的参数 package-nameactiveProfileboot-main 都是由mvn中profiles的properties中提供是可变的参数脚本代码本身不需要人工去修改只需要变的是mvn的参数即可其实在我们生成zip包的时候shell中的参数就被替换了可以看zip中shell文件内容如linux上使用shenniu_publish.sh启动程序把生成的zip上传到linux上通过命令解压unzip -od eureka-server-0.0.1-node eureka-server-0.0.1-node.zip其实shell脚本中包含有解压命令但是我在打包时放在了zip中所以只能通过手动解压了当然可以调整此时进入加压目录如此注这里第一次执行./shenniu_publish.sh脚本时候提示了错误信息是由于我是在windows上编辑的这个脚本其空格等和linux上不一样所以运行会有问题要解决可以使用vim命令在linux把该文件转成linux格式如下命令vim shenniu_publish.shset ffunix:wq执行完后再来运行脚本./shenniu_publish.sh此时有如下提示:此刻我们文件是解压状态因此只需要start命令启动程序即可到这里shenniu_publish.sh脚本使用就完成了只要脚本没有提示错误基本都能启动jar服务其他restart和stop命令也如此执行就行可以去研究下shell代码希望该脚本能给你带来效率和好的学习思路。Java知音专注于Java实用文章推送不容错过来源cnblogs.com/wangrudong003/p/10502043.html
http://www.sadfv.cn/news/453905/

相关文章:

  • 怎么建设网站最便宜app维护费用一般多少钱
  • wordpress 网站同步网站建设流程服务
  • 学生做网站的工作室宁波专业网站制作
  • 怎么做律师事务所的网站台州网站建设选浙江华企
  • 网站采用哪种开发语言图片网站模板
  • 网站建设可行性分析报告婚恋网站女孩子都是做美容
  • 肇庆搞产品网站的公司企业宣传推广
  • 重庆建网站派臣公司知名品牌营销策划案例
  • 中山企业网站制作公司帮我们公司做网站
  • 中山建设企业网站网站怎么做漂亮点
  • 建设旅游服务类网站的可行性报告wordpress主题安装怎么更换内容
  • 广州网站开发设计公司wordpress页面不要菜单
  • 合肥企业建站系统模板深圳最好的品牌设计公司
  • 河北做网站房地产网站建设平台
  • 企业微网站与手机微信号分享代码的网站
  • 北京门户网站工地建筑模板尺寸
  • 电邮注册网站大公司网页设计用什么软件好
  • 水碓子网站建设wordpress开放目录
  • 陕西省建设厅申报网站创意网红墙
  • 济南定机票网站建设鄂尔多斯住房和城乡建设局网站
  • 做网站建设的公司有哪些内容沧浪seo网站优化软件
  • 兖州建设局网站seo关键词优化推广外包
  • 北京建网站服务哪里推广效果比较好
  • 公司网站怎么免费建美橙互联送的网站源代码
  • 儿童摄影网站模板大型企业名录查询
  • 做网站年薪百万淘宝客免费建网站
  • o2o模式的电商平台网站有哪些深圳建网站就找兴田德润
  • 怎么做类似淘宝网站个人网站备案能做宣传用么
  • 合肥网站建设合肥保定建设网站及推广
  • 专业做排行的网站王者荣耀做网站