http://maven.apache.org/
所有3.0.4以上版本下载地址: https://archive.apache.org/dist/maven/maven-3/
注意:binaries 目录下才是 可执行文件, source是源代码不需要下载
导入的jar包其实也可以看成一个写好的小项目 让jar项目和我们的项目相互依赖起来,就可以互通了
中央仓库: https://repo1.maven.org/maven2/
Version:3.8.1 就是说兼容 3.8.1及其之前的版本,装个3.6.1也没啥问题
所有3.0.4以上版本下载地址: https://archive.apache.org/dist/maven/maven-3/
注意:binaries 目录下才是 可执行文件, source是源代码不需要下载
2. 配置环境变量
新建系统环境变量: MAVEN_HOME
值为maven安装根目录: C:\Program Files\maven\apache-maven-3.6.1
再将bin目录配置到系统环境变量的path里面
%MAVEN_HOME%\bin
写完后一路点击确定
注意,本地仓库千万不要在 C:\Program Files\
目录下,权限太高,后面命令行和idea会没有权限在里面创建目录(报错:Failed to create parent directories for tracking file)
<localRepository>C:\software\maven\apache-maven-3.6.1\mvn_resplocalRepository>
(如果保存时提示没有权限(一般安装在C盘Program目录下会有这个烦恼)则先将文件复制到桌面,在桌面修改好后再复制回去)
一般都习惯于在maven安转根目录下,新建一个文件夹,作为本地仓库所有jar包位置。但是如果你maven装在C:\Program Files\
就不能这么干了
只能另外创建类似目录
4. 配置阿里云私服
修改 conf/settings.xml 中的 标签,为其添加如下子标签:
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
先用一个现成的小项目,用命令行试试这些命令,以深入理解每个命令的作用
链接:https://pan.baidu.com/s/1bo2cK1hnt53CIqr239-aUA
提取码:rfyh
在项目的pom.xml所在目录下打开cmd
先看看本地仓库,啥也没有
执行编译命令: mvn compile
第一次编译先会去阿里云私服下载编译工具带本地创仓库目录下,mvn_resp
第二次编译就不会了。
编译完成后,项目目录下会多出一个target目录,里面是整个项目所有编译好的结果
执行清理命令: mvn clean
同样第一次执行会先下载对应的工具包。然后删除所有编译好的结果(删除target目录)
执行打包命令: mvn package
(第一次执行也会先下载对呀工具包)
重新生产target目录,并将打好的包放在里面 (java项目打jar包,web项目打war包)
- compile :编译
- clean:清理
- test:测试
- package:打包
- install:安装
点maven home path 最右边 … 选择自己安装maven的根目录
勾选Override 选择自己安装maven的conf/settings.xml配置文件
(第三个本地仓库会自动识别出来的)
若改骨架下没有自己想要的目录,可以自行创建,如:resources
此插件可以更方便地执行maven命令,甚至可以Debug maven
注意:第一次写某种jar包是没有代码提示的,得百度好坐标应该咋写,然后,手动刷新,让maven去下载jar包到本地仓库,然后以后写就都会有代码提示了
新版本是自动帮你生成代码了。或者就是已经有依赖,再用就不好使了
编译环境就是main目录下的代码
测试环境就是test目录下的代码
注意:JDK17 得配置好编译版本 (否则执行报错)
<properties>
<maven.compiler.source>17maven.compiler.source>
<maven.compiler.target>17maven.compiler.target>
properties>
运行时无效就是说:将来项目打包后,不会将对应的jar包复制过去。(打好的包内无对应jar包)
不配置依赖范围,scope,默认就是compile,所有环境都有效。大部分情况都采用默认,直接都有效