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

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

  • 相关阅读:
    SessionAttributes注解
    数据格式化
    数据类型转换器
    线程的常用方法总结
    线程生命周期
    分析配置DispatcherServlet类时load-on-startup标签作用
    springMVC的执行请求过程
    MyBatis之动态SQL
    MyBatis实现
    Spring框架中的JDK与CGLib动态代理
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/mvn_export.html
Copyright © 2020-2023  润新知