由于我的电脑是mac系统,跟windows的系统有很多的区别,所以弄起来有超多的问题,搞了好久,才搞定。🤡
一、Maven下载及其存放位置:
首先,是下载,这个没什么问题🤣,直接去搜maven的官网下载对应的版本,
进官网->点击Download->Download里面进去可以看到Files下面有4个文件,这是最新版的,如果要下其他以前的版本,可以点击下面的other的第二个
点进去以后看到红框的4个文件夹,里面是1-4的不同版本的maven(这里面的版本只有4.0和3.8和3.9的),自己去找所需要的对应版本,点击对应的版本号,然后点击第一个文件夹(binaries),下载第一个bin.tar.gz的文件
我这里下的是3.6.3版本的,如果想要找到3.8往前的版本的,去Other Releases找到Maven 3 archives,点进去就可以看到之前的版本了,然后按照前面的操作就行了。
下载完解压,就可以得到一个apache-maven-3.6.3的文件夹,然后把这个文件夹移动到你自己的/usr/local/文件夹里面去,这里可能有人找不到/usr/local/文件夹,有两种办法:
一、打开访达,点击左上角前往;
然后下面会有一个前往文件夹
点击它,会出现一个窗口,在窗口中输入/usr/local/然后回车就可以去到/usr/local/文件夹了
然后把文件夹拖到这个里面就可以了
二、打开终端,按照下面的指令在终端输入指令:
若要将“文稿”文件夹下名为“Expenses”的文件夹拷贝到另一个名为“Data”的宗卷上:cp -R ~/Documents/Expenses /Volumes/Data/Expenses
二、配置环境变量:
接下来就是为maven配置环境变量,这一步可能会出现很多问题要耐下心来慢慢做🤯;
1、配置:
这里我们要了解Mac系统环境变量的加载顺序:a -> f
a. /etc/profile
b. /etc/paths
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc
/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量.推荐设置用户个人自己的环境变量~/.bash_profile,尽量不破坏Mac系统全局变量
然后就是设置环境变量,我们打开终端:
这里可以在终端输入两种指令:
一个是输入:vim ~/.bash_profile
输入这个指令是直接在终端上对文件进行访问。输入后终端会出现 ~/.bash_profile的一些信息,有兴趣的可以自己去了解一下,这里我们只需要看到最后一行光标闪烁的位置也就是‘--More--’那
点击回车键可以看到‘--More--’变成[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
可以去了解一下这几个指令的意思和作用🧐:
[O]pen Read-Only: 打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。
(E)dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存盘的内容。不过很容易出现两个使用者互相改变对方的档案等问题!
( R )ecover: 就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!
(D)elete it: 你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!
(Q)uit: 按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
(A)bort: 忽略这个编辑行为
了解以后,因为我们要修改这个文件的内容,所以我们应该选择dit anyway,所以在键盘上输入e,这时我们就跳转到文件~/.bash_profile内部了(注意:这里不要输入o,因为o的指令是只读,输入o同样也可以进到文件~/.bash_profile内部,但是你只能看,不能修改文档内容🤬)
上面是红框内我已经配置好并且修改完成的Maven和tomcat的环境变量,一开始是没有这些的,
我们先按照步骤来,
在文件中加入(在原本的空白文件里,不要看我改完以后的!!!):记得apache-maven-3.6.3改成自己下载的maven的版本!!!
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
然后点击esc对文件进行保存;(这些在终端的操作和指令要去了解一下)
然后输入:wq退出文件,退出到刚开始输入vim ~/.bash_profile的界面就编辑成功了。
接着输入source ~/.bash_profile 为配置环境变量生效;
然后输入mvn -v查看是否配置成功;
如果输入mvn -v后终端显示:
则配置环境变量成功!
第二个是在终端输入 open ~/.bash_profile
然后就会打开一个.bash_profile的文本文件
直接按照上面的把环境变量加在里面,然后command +s保存就可以了,接着继续下面的为环境变量生效,查看是否配置成功就可以了;
2、常见问题:
a、The JAVA_HOME environment variable is not defined correctly:
在按照上面的操作在.bash_profile文件里配置完环境变量后,在输入mvn -v查看环境变量是否生效时,系统给你报错🤪:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
然后我们去分析这个报错,它说我的JAVA_HOME环境变量没有识别成功,这个项目需要跑JAVA_HOME的环境变量,JAVA_HOME应该指向JDK而不是JRE,看完以后就在想,最开始下载JAVA的时候我配置了环境变量的啊,然后我去终端用java -version查看我的java版本也是我下载的版本,它为什么找不到我的JAVA_HOME环境变量呢,然后就在网上寻找答案,网上找到了很多解决方法,有的要我在.bash_profile文件添加代码段:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
有的叫我在/etc/profile文件添加代码段:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
这时我就想到上面说过的这两个文件的区别,/etc/profile文件是系统级别的,系统启动就会加载,而.bash_profile是当前用户级的环境变量(推荐设置用户个人自己的环境变量~/.bash_profile,尽量不破坏Mac系统全局变量),又通过了解得知修改bash_profile只是临时有效的方式,想永久生效需要通过修改/etc/profile。这时我就有点晕了🫠。
所以我首先修改了.bash_profile在我一开始添加的Maven的环境变量前加入了上面的代码(上面两段代码,可以看出第一段代码只是第二段代码的一部分,所以建议用第二段代码)
这里/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home要用自己下载的java版本和路径!!!
下面是怎么查看自己的java版本和路径:
在添加完.bash_profile文件添加完JAVA_HOME后;在终端输入source ~/.bash_profile 为配置环境变量生效;检查JAVA_HOME,在终端输入echo /$JAVA_HOME,出现:
//Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
就可以了然后再在终端输入mvn -v看maven是否配置成功,如果成功了就跳过到后面,如果没有就
在/etc/profile文件添加上面的代码,然后继续上面的生效,检查步骤。
这时我们已经把JAVA_HOME也弄好了,这时我们去输入mvn -v还是报找不到的错误,就很晕😵💫,然后我就看了这篇文章🤩
https://blog.csdn.net/weixin_44587820/article/details/123336632
按照这个博主说的让我在在maven环境变量配置文件中继续添加一句:
export JAVA_HOME=$(/usr/libexec/java_home)
maven环境变量配置的文件,那不就是.bash_profile文件,所以我就按照他的添加了就变成我上面的图片里那样的了,然后就生效,检验,终于……不是再报找不到的错误了🥳
b、无法打开“libjansi.jnilib”,因为无法验证开发者:
当我把maven的环境变量搞定以后,输入mvn -v检验的时候,弹出了一个窗口🤮
这个其实用了一段时间的Mac系统以后可以发现,Mac其实有很多东西下载了都会因为这个问题无法打开,确实很烦🥸。
单独对maven而言,我们只需要在系统设置里面找到隐私性和安全,找到安全性可以看到
我们只需要点击仍然允许 ,然后返回终端,输入mvn -v,就会弹出
点击open就可以了。
然后接下来其实有一个方法可以不需要每次下载类似的东西都要去允许(甚至有的时候它会不让你打开,连仍然允许都没有),但是这个方法谨慎使用🤐,因为Mac设计这个的原因就是想保护电脑不被你下载的不明身份的软件攻击的,是为了保护你的电脑的:
在终端输入指令sudo spctl --master-disable ,终端会让你输入password,password是你自己的账户的密码,你输入的密码是看不到的,输入后点击回车。
然后你就可以在同样的安全与隐私发现安全性那里多了一项,把它改成那一项就可以了:
切记!!!如果要使用这个的话,你下载的软件确保一定是安全的,不然造成的后果自负🫣
c、一个很奇怪的问题:
按上面的步骤,把环境变量配置成功后,输入mvn -v,也得到了正确的输出,我高兴坏了,终于搞定了,但是当时我注意到一个问题,每次我重新打开终端的时候,我想装个逼说我配置好了,但是每次直接输入mvn -v去检查版本还是报找不到JAVA_HOME那个错误,吓得我赶紧又去看了好几遍,确认我配置的没问题,然后source ~/.bash_profile ,再mvn -v,它又可以成功得到maven的版本等信息了,然后我就发现,每次重新打开终端都要先source ~/.bash_profile,再mvn -v才能成功,单独mvn -v还是会报错,我一开始觉得没什么问题就没管了,后面我想用IDEA去学习的时候它的maven找不到,于是我又要回头去探究这个问题😭。
经过我查阅资料后可以知道是iterm的问题,我的iterm使用了zsh,每次重新启动终端都会加载
~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。
所以我们只需要在终端打开 ~/.zshrc文件,然后在~/.zshrc文件最后,增加一行:
source ~/.bash_profile
接着source ~/.bash_profile
然后就可以随时mvn -v查看maven信息了。
自此,常见的也是我遇到的配置maven的问题都解决了🥳。
三、更新mirrors为阿里云镜像,新建本地仓库:
1、更新mirriors为阿里云镜像:
为什么要更行mirrior为阿里云镜像呢?我了解了一点点……🫣
大概就是,maven是国外的公司的,而我们要所以maven时要下载jar包啊什么的,从国外下的话,由于一些……原因会很慢,当然可以用,但是巨慢,而用阿里云的镜像就能快速的解决问题啦。当然这是我自己的理解,可能不太对,想了解去网上找大神🥺
在你下载的maven文件夹内找到conf文件夹,点开里面有一个setting.xml文件,打开文件
找到图片所在位置,加入阿里云的镜像代码:
要加入的代码:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2、配置本地仓库:
为什么要配置本地仓库呢?这个是网上找的🤪
配置maven项目的方便之处在于不需要导入多个jar包,它是将jar包放在统一的库中,有中央仓库和本地仓库,中央仓库就是从网站上根据jar包的坐标来导入相应的架包,这个要需要网来下载,那么在无网的情况下我们就要导入一个本地仓库,本地仓库就是放入所需jar包的仓库文件。😎
首先,在local文件夹内也就是和maven平级的文件夹内新建一个maven-repository文件夹,这个就是你的本地仓库。
然后还是同样在setting.xml文件加入代码:
这里的改为你自己创建的位置:
/usr/local/maven-repository
3、关于在setting.xml添加代码时遇到的修改权限不足的问题:
在添加完阿里云镜像和本地仓库后,保存时它告诉我说我的权限不足
这其实就是苹果难受的地方,因为你不是这个文件的作者所以没有权限,每次都要去修改权限🤬
这里对于这个文件修改权限来说:
首先找到文件,右键点击它,找到显示简介,点击打开:
在最下面找到共享与权限,可以看到你只可以读,要修改就要先点击最右下角那个锁的图标🔒,然后它会显示需要你的开机密码,输入开机密码后在那个表格里面找到本用户,在把他的权限修改成读与写就可以了。
当你修改完权限后,如果能正常保存就可以啦,但是我还遇见了一个怪事🤡,就是我按照上面的修改成读与写以后,用IDEA打开setting文件时我的setting文件虽然有阿里云镜像和本地仓库,但是我的文件最后是有缺失的,而我用文本编辑打开setting文件后,我的文件是完整的但是我的阿里云镜像和本地仓库却不见了……后来我想了想,我最开始修改权限的时候是在终端用指令把权限放开了,但是现在我去显示简介里面修改权限发现没有找到本用户,虽然我把所以能看到的权限全部放开了还是没有把本用户的权限放开,所以没办法只能在终端输入指令把那个文件夹里面所有的文件权限全部放开了,然后再关掉IDEA重新打开,setting文件就要重新配置阿里云镜像和本地仓库,但是这下可以修改了💩
还有就是,如果像我一样在显示简介无法找到本用户(可以点下面的+号看有没有!!!有就加进来就可以了)可以直接在终端通过指令修改权限:
修改文件夹权限为777可读可写可执行
1. cd 你的文件夹路径的上一级目录。
2. sudo chmod -R 777 你的文件夹名。
3. 输入密码。
四、总结:
emm……搞个这个花了我巨久,确实遇到了很多问题,一个一个的慢慢解决确实费时间,但是搜获还是很多的,静下心来加油🥳