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

来源:互联网 发布:数据和求组 编辑:程序博客网 时间:2024/06/05 06:44

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.9export PATH=$PATH:${M2_HOME}/binexport MAVEN_OPTS="-Dmaven.multiModuleProjectDirectory=$M2_HOME"export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHexport 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.9Java version: 1.7.0_95, vendor: Oracle CorporationJava home: /usr/lib/jvm/java-7-openjdk-amd64/jreDefault locale: en_HK, platform encoding: UTF-8OS name: "linux", version: "3.16.0-30-generic", arch: "amd64", family: "unix"root@master:/# 
0 0
原创粉丝点击