解决IDEA项目无法读取mac环境变量问题

786 阅读1分钟

我在项目的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所有项目关闭后重启,此时环境变量就能正常读取,项目终于启动成功