欢迎访问我的个人网站==》 jiashubing.cn

linux安装maven报错

执行mvn命令,报错如下:

  -Dmaven.multiModuleProjectDirectory system property is not set.

本来linux 上装的maven是A版本,但是现在需要改成B版本了。安装解压,配置环境变量后,使用mvn -v 发现,仍然是A版本。

后来发现每次source完,PATH变量都会新增一下,问题就出在这里,(linux配置环境变量出错)如下图:


导致这个问题的原因是,在配置环境变量的时候,是这么配置的
  export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

应该把 $PATH 放到环境变量的最后,这样就就算会覆盖,也会用前边的配置覆盖后边的配置
  export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH

(理论上就算$PATH放到前面,source完也不应该出错的,但这个底层原因不懂了,这里也不研究了)


 

 但是还有一个问题,就是现在环境变量已经错了,该怎么办?

我这边就是,先配置成这样
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:$M2_HOME/bin:$JAVA_HOME/bin
  source完以后,再设置成
  export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH

 

突然发现我好傻逼啊,自己半天没看出来。感谢评论里“东北小狐狸”的说明

JAVA_HOME和M2_HOME是变量,在export PATH时,应该使用$符进行取值
例:

export JAVA_HOME=/opt/jdk
export M2_HOME=/opt/maven_repo
export PATH=$JAVA_HOME/bin:$M2_HOME:$PATH

export的作用是将此变量作为多用户线程可见的环境变量,如果不export,则仅当前登录用户可见,且子线程无法接收到此变量。

 

原创文章,欢迎转载,转载请注明出处!

posted @ 2020-08-04 10:40  贾树丙  阅读(585)  评论(2编辑  收藏  举报