ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

maven编译后启动jar包读取不了启动时的配置文件

2022-07-07 22:34:48  阅读:132  来源: 互联网

标签:npm 配置文件 启动 jar 数据库 环境 编译 服务器


maven编译后启动jar包读取不了启动时的配置文件   在周一的时候,我给大家介绍过,有个项目是前后端分离的,前端是npm编译后的nginx静态目录,后端是maven编译后的jar包。   话说线上有个客户体验环境,但是由于一些原因,不能再在这个线上客户体验环境进行测试,动里面的数据了,鉴于线上服务器也不太充足,所以这几天临时需要在公司内网部署一个客户体验环境进行测试。   昨天我经理叫我快速部署好这个环境(我当时给他说如果不急的话,天翼云近期会给测试服务器我们,我在上面部署,但他说比较急,我只能从了),因为明天要去做演示。然后本来内网是有一个内测环境(架构一摸一样,有nginx也有配好的配置文件,也有java环境),跟线上测试环境一样的,弄了jenkins发布。   昨天在公司内网部署这个环境,我是怎么快速完成的呢?   一开始,我想直接克隆该机器的,新建一个新的虚拟机,但想想这样也慢了,因为内网内测环境也分配了100G的硬盘,vmx、vmdk后缀文件都不小。可以参考我之前的【同一台服务器虚拟机之间克隆参考:https://blog.csdn.net/zhangmingcai/article/details/87859339】   于是果断直接在这台内测环境的机器部署。nginx静态目录指向另一个位置,而jar包运行改成另一个端口。 (1)同步线上客户体验环境的数据库数据到公司内网数据库    mysqldump线上mysql数据库数据下来,导入到内网mysql (2)对于前端nginx   jenkins 配置发布流程:npm编译之后(npm install;npm run build:xxx),会生成一个dist目录,然后我会将它压缩打包成 dist.tar.gz,再远程发布到nginx入口机器,解压。   可以直接从浏览器jenkins的工作区拿到,双击下载,然后在内网服务器 rz 上传即可:   (3)对于后端 jar 包     jenkins 配置发布流程:maven编译后(clean install  -e -DskipTests=true -Pxxx),会在某个项目目录下生成jar包,然后发布到远程机器,java -jar xxx.jar。        同理也是从浏览器下载拿到。   由于maven编译的时候,连的是线上体验环境的数据库,所以启动的时候,我特意指定了修改过的配置文件(连接公司内网数据库)去运行:
nohup /usr/local/java/jdk1.8/bin/java -jar  {系统后台jar包名}.jar --spring.config.location=application-xxx.properties --server.port={指定一个服务器上没有监听过的端口,尤其不要跟测试环境的jar包端口一样} >> /home/{服务器某普通用户}/app/{项目名}/logs/out_{项目名}.log 2>&1 

    这个application-xxx.properties 是我从浏览器下载的jar包解压出来的目录:BOOT-INF/classes/    拿到的。

  然后在里面我修改成内网数据库连接:

   今天很悲催的发现,即使我强制指定改过的数据库配置连接文件,还是连的线上,只能感叹这个jar包很顽固。也推翻我之前测的 启动jar包指定数据库连接  的实验,如果今天不是前端叫我停内网数据库,去验证这个问题,我还真的以为很正常的连接到了内网的数据库。

  至于为啥这样,我都觉得是个谜~~~我那个实验确实可以的,但今天这个环境又不可以。

  另外一个事,前端直接拷贝dist目录来还原线上体验环境也是不行的!!

        npm有个编译:npm run build:xxx,里面已经写死了后台api地址,如下图:

   需要改成内网服务器:ip+端口形式的后台地址

      所以最终我认为的快速部署环境,实则上是不可行的,都需要重新编译,发布。本来以为走的捷径,实则劳心劳力还解决不了问题,而且以前做的测试也被推翻(原因未知),只能洗洗睡~

  

标签:npm,配置文件,启动,jar,数据库,环境,编译,服务器
来源: https://www.cnblogs.com/windysai/p/16456396.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有