我目前正在开发一个ubuntu pc。我在eclipse中创建了maven项目,并通过给出目标“干净安装”来构建它。它创建了战争文件。
但是当我使用命令printenv
搜索maven home环境变量时
它在输出列表中没有显示M2_HOME。
当我发出命令echo $M2_HOME
时,它显示空行。
当我发出命令mvn --version
时,它给了我流动的输出
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-109-generic", arch: "amd64", family: "unix"
我的问题是,maven可以在没有环境变量的情况下工作吗?
答案 0 :(得分:3)
可以在没有环境变量的情况下工作吗?
是的 - 你刚才证明了这一点。 :-)默认情况下,通过您的发布,/usr/share/maven
是$M2_HOME
*。
如果您导航到包含pom.xml
并运行mvn clean install
的目录,您还应该成功构建。
另外2个笔记:
首先,Eclipse(至少Eclipse for Java EE Developers)默认包含自己的嵌入式Maven安装 - 因此您甚至不需要在操作系统级别安装Maven。如果您同时拥有这两者,则可能最终使用相同或单独的本地存储库副本等。
其次,为了扩展上述* - 至少从Maven 3.5.0开始,M2_HOME
已不复存在。根据{{3}}:
基于使用M2_HOME与安装的不同Maven版本相关的问题并简化操作,M2_HOME的使用已被删除,不再支持MNG-5823,MNG-5836,MNG-5607。
另见:
总结以上参考资料,真正重要的是您的PATH
变量 - 而不是M2_HOME
。
答案 1 :(得分:1)
所有Maven需要工作的是PATH
环境变量中Java的路径。这是最低要求。它能够导出所有其他HOME变量供自己使用。除此之外,如果您希望能够从任何目录运行maven(而不是每次chdir
进入maven的bin文件夹),您也可以将Maven自己的bin文件夹添加到PATH
。< / p>
注意:在maven 3.5.0中,M2_HOME变量实际上是being removed。所以它不应再被使用了。