zoukankan      html  css  js  c++  java
  • 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,则仅当前登录用户可见,且子线程无法接收到此变量。

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

  • 相关阅读:
    11.json
    10.正则表达式
    9.面向对象、类
    bzoj 2878: [Noi2012]迷失游乐园
    bzoj 2727: [HNOI2012]双十字
    bzoj 3224: Tyvj 1728 普通平衡树
    bzoj 3932: [CQOI2015]任务查询系统
    bzoj 1997: [Hnoi2010]Planar
    4 Django简介
    3 web框架
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/mvn_export.html
Copyright © 2011-2022 走看看