我在项目的yaml文件配置nacos dataId的读取,如下:
spring:
config:
import:
- optional:nacos:${NACOS_DATA_ID}?refreshEnabled=true
但项目启动报错:
Connected to the target VM, address: '127.0.0.1:56983', transport: 'socket'
2024-05-21 20:42:44.058 ERROR - [ main] o.s.b.SpringApplication : Application run failed
java.lang.IllegalArgumentException: illegal URI: http://127.0.0.1:8848/${NACOS_DATA_ID}?refreshEnabled=true
这说明IDEA无法读取到环境变量。 在mac iTerm执行如下命令:
vim ~/.bash_profile
添加NACOS_DATA_ID环境变量
export NACOS_DATA_ID=api-dev.yaml
在命令行执行echo $NACOS_DATA_ID命令能够读取到,但启动idea 项目还是报一样的错,这是为什么呢?
这是因为mac使用了zsh作为shell,导致环境变量失效
查看使用的shell命令,发现确实是zsh
echo $SHELL // 输出:/bin/zsh
在~/.zshrc中添加:
source ~/.bash_profile
然后执行,source ~/.zshrc即可。
但是IDEA项目启动还是失败,报一样的错。
这是因为如果IDEA先打开,环境变量后加入,在IDEA调试代码时,就会出现无法获取环境变量的问题
将IDEA所有项目关闭后重启,此时环境变量就能正常读取,项目终于启动成功