第一次使用mac,maven配置不永久生效问题。

3 篇文章 0 订阅

入职后的这第一天一直安装环境,都是使用Homebrew安装一些依赖,尝试自己解压zip手动去配置maven出现了问题。

案发现场:

进入到bash_profile去配置了环境变量(环境变量都是正确的),然后source ~/.bash_profile之后,在原来source ~/.bash_profile 的终端可以查看到mvn 版本,但是新建终端后就访问不到mvn了,相当于是一次性使用,我们要解决一次性的问题,让mvn配置后永久生效。

解决思路:

1.确认环境:
首先确定使用的Mac OS X是什么样的Shell
输入命令echo $SHELL


如果输出的是:csh或者是tcsh,那么你用的就是C Shell
如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

 

2.如果是Bourne Shell

那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个,把环境变量写进去,就像我第一张图。

 3.最终

需要注意的是,如果你在Mac上使用的是zsh等shell工具,需要再做如下配置,来达到环境变量设置的永久生效。(也是我的mac的出现的问题)
在~/.zshrc文件最后增加一行source ~/.bash_profile(意思就是刷新加载~/.bash_profile)
然后source ~/.zshrc刷新配置。

原理(为什么会这样):

mac系统的系统变量加载顺序为:

  1. /etc/profile (建议不修改这个文件 ) 全局(公有)配置,不管是哪个用户登录时都会读取该文件
  2. /etc/paths (一般在这个文件中添加系统级环境变量) 全局(公有)配置,bash shell执行时不管是何种方式都会读取此文件
  3. ~/.bash_profile (一般在这个文件中添加用户级环境变量) 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时该文件仅仅执行一次!(由于公司发放的mac没有最高权限,所以只能放在这里)
  4. ~/.bash_logine.
  5. ~/.profile
  6. ~/.bashrc

其中1和2是系统级别的系统启动就会加载;其余是用户级别的。3,4,5按照从前往后的顺序读取,如果3文件存在,则后面的几个文件就会被忽略不读了,以此类推。

~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
全局设置,一般不建议修改/etc/profile和/etc/bashrc 文件,而去修改/etc/paths文件。如果想要对所有用户都生效则可在/etc/paths文件的最后一行加上自己的app路径。优先级也是最高的。

单个用户生效的配置,一般都是修改~/.bash_profile文件,若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!

注意:
bash的配置文件是.bashrc。zsh的配置文件是.zshrc,当你使用zsh作为默认shell工具的时候,它启动时并不会加载bash的这两个配置文件.bashrc和.bash_profile,而只会加载自己的配置文件.zshrc,为了让我们的配置文件生效,只能在.zshrc中添加上面的配置。
如果不做上述设置,你就会发现,只有当你每次source ~/.bash_profile后才会生效,下次重新打开zsh窗口,还是不生效。 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值