Ubuntu Server 14.04 下 mvn 出现 -Dmaven.multiModuleProjectDirectory 错误 解决方法

Ubuntu Server 14.04 下 mvn 出现 -Dmaven.multiModuleProjectDirectory 错误 解决方法

这里写链接内容第一种解决方法
这里写链接内容第二种方法
先上两个解决方法,这个需要Jump Wall吧,对于天朝的我们,不是难题。首先说一下,我的mvn基本环境变量都配置好,没有错误。
现在开始上问题,这个问题是:

root@master:/usr/local/apache-maven-3.3.9/bin# mvn --version
-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.root@master:/usr/local/apache-maven-3.3.9/bin# 

这个问题好烦人啊!百度了N种方法,就是不行。问题是3.3.9的一个bug,这个老外外解决方法是看解决的日志,由于无从下手,还是搜关键字。

最后还是在上面那两个链接中找到了连个解决方法。
但是第一个方法比较安全,但是繁琐,
第二个比较简单,但是尚不知道为什么这样解决。

方法1

// 来到mvn的bin目录下,执行下面的语句
./mvn -Dmaven.multiModuleProjectDirectory=$M2_HOME --version

这种方法就是我们每次用到了mvn,都要进到这个目录下,再书写命令,好繁琐,但是问题真的解决了。
(1)还有就是我发现我在这个目录下,直接输入./mvn –version命令,他也可以直接出来mvn的结果。
(2)当离开这个目录,输入那个命令,并不能解决我们的问题。
方法2
天朝的人很强大,也很懒。。。在配置好/etc/profile和/etc/environment 环境变量后,我们需要直接在任何地方写mvn –version即可显示版本信息,或者是编译我们的项目。所以第二种方法就是配置/etc/profile文件。

root@master:/# cat /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

export M2_HOME=/usr/local/apache-maven-3.3.9
export PATH=$PATH:${M2_HOME}/bin
export MAVEN_OPTS="-Dmaven.multiModuleProjectDirectory=$M2_HOME"

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

不解释,在profile文件中添加这一句

export MAVEN_OPTS="-Dmaven.multiModuleProjectDirectory=$M2_HOME"

然后source /etc/profile 文件

source /etc/profile

重新在 / 目录下mvn –version,竟然神奇的好了,这个我不知道为什么,如果有知道的大神,可以留言哦!

root@master:/# pwd
/
root@master:/# mvn --version 
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.7.0_95, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_HK, platform encoding: UTF-8
OS name: "linux", version: "3.16.0-30-generic", arch: "amd64", family: "unix"
root@master:/# 

你可能感兴趣的:(ubuntu,mvn,-Dmaven)