一键替换nacos命名空间并启动及解决java -jar在 windows环境运行错误

小团队做微服务项目开发时,最繁琐的就是要启动诸多的jar程序,每次一个个手动点击,而且每次启动都需要手动修改nacos注册中心的命名空间,非常浪费时间。

那么有没有办法解决这个问题,提升效率呢?
答: 采用命令修改。
目前实现的仅支持 linux的shell命令。

Windows不支持怎么办呢?
答:很多团队,都已经使用git来开发了,可以充分利用git bash here的MINGW64终端。

以下是实现的命令:

查看所有的namespace值

find ./ -type f -name '*.yml' | grep -vE 'xxx-common|xxx-api|target'|xargs cat |grep namespace

一键替换namespace的值

find ./ -type f -name '*.yml' | grep -vE 'xxx-commonxxx-api|target'|xargs sed -i 's/namespace:.*$/namespace: 命名空间(注意命名空间和:间的空格)/g'
例如:
find ./ -type f -name '*.yml' | grep -vE 'omo-common|omo-api|target'|xargs sed -i 's/namespace:.*$/namespace: 8c90822f-3bf9-4035-8a34-1750509ab4b4/g'

一键快捷启动jar程序

find ./ -type f -name '*.jar' | grep -vE xxx-common|xxx-api'|xargs -i java -Dfile.encoding=utf-8 -jar {} --spring.profiles.active=dev

备注:一键快捷启动时,采用的是java -jar 的方式运行。
jar -jar运行时,出现一个非常奇怪的现象。
1、直接在idea中,直接运行main函数方式,能运行。
2、直接在Linux环境中,运行jar -jar 也能运行。
3、但是在Windows环境中,运行java -jar 却运行不成功,报如下错误。
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1

经过一系列检查,确定yml配置没有任何问题,那么就只有可能出在编码上。
因此解决方式,指定编译运行即可:java -Dfile.encoding=utf-8 -jar xxx.jar

你可能感兴趣的:(一键替换nacos命名空间并启动及解决java -jar在 windows环境运行错误)