Maven的配置:
Maven的配置和Java差不多,从镜像站下载相关的Maven版本压缩包,然后解压到自己的D盘,在进行系统变量的配置,新建变量Maven_HOME,然后值设置为Maven的地址,一定是点开文件后就能出现bin等其他文件的父目录的地址,不然系统检测不到。
1、下载:
华为镜像站Maven下载地址:Index of apache-local/maven/maven-3
2、解压后找到Maven地址:
3、配置系统变量:
4、检测是否安装成功:
Win+R,打开命令行,输入mvn -v ,检测是否安装成功,如果不报错就说明已成功配置Maven,
另外注意:Maven是在Java的配置环境下运行的,先配置Java环境变量,如果按照上述步骤还是无法检测Maven安装成功,排除地址等错误,我们需要将Path中的java环境变量放在Maven的上面,这样系统从上往下就能检测出Maven
5、修改成阿里云镜像:
5.1先找到Maven中的conf文件,修改Settings.xml文件
5.2新建仓库位置,否则会默认在.m2的文件中
5.3修改成阿里的镜像
阿里镜像代码:
<mirror>
<id>alimaven</id>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
在Idea中使用Maven:
在打开idea的首页的时候就进行Maven的配置
1、配置Maven位置
先点击Customize,然后进入 All settings中进行设置
2、新建Maven文件
3、出现pom文件,表明创建成功
Maven的结构目录:
Maven约定的目录结构:
项目名 src【书写java源代码】
main【书写java主程序代码】
java【书写java代码】
resources【书写配置文件代码】
test【书写测试代码】 java【书写测试java代码】
pom.xml【书写配置文件代码】
target【编译后目录结构】
Maven生命周期:
Maven生命周期:按照顺序执行各个命令,Maven生命周期包 含以下三个部分组成:
Clean LifeCycle:在进行真正的构建之前进行一些清理工 作。
Default LifeCycle:构建的核心部分,编译,测试,打包, 安装,部署等等。
Site LifeCycle:生成项目报告,站点,发布站点。
Maven的坐标【重要】 作用:
使用坐标引入jar包 坐标由g-a-v组成 :
[1]groupId:公司或组织的域名倒序+当前项目名称
[2]artifactId:当前项目的模块名称
[3]version:当前模块的版本 注意 :g-a-v:本地仓库jar包位置 a-v:jar包全名
坐标应用 坐标参考网址:http://mvnrepository.com
学习pom.xml文件:
POM全称:Project Object Model【项目对象模型】,将项目封 装为对象模型,便于使用Maven管理【构建】项目
Maven中统一管理版本号:
<properties>
<junit-version>4.12</junit-version>
</properties>
<dependencies>
<!--
https://mvnrepository.com/artifact/junit/junit --
>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<!-- <scope>test</scope>-->
</dependency>
</dependencies>
Maven的依赖管理:
依赖范围 依赖语法: <scope>
compile【默认值】:在main、test、Tomcat【服务器】下均有效。
test:只能在test目录下有效,如 junit(单元测试)
provided:在main、test下均有效,Tomcat【服务器】无 效。 如:servlet-api
同时依赖也具有传递性:
先声明者优先
路径最短者有先【就近原则】
注意:Maven可以自动解决jar包之间的依赖问题
Maven的继承:
有两种方式:
1、直接在父类的pom文件中导入jar包,继承的子类会自动引入父类相关的jar包,如果子类自己引入了不同版本的jar包,这时用的就是子类自己的,如果没有引入,就使用父类的,另外如果间接的导入jar包,比如model1导入model2.jar,那么这时候谁先声明,就用谁的jar包。如果子类中引入同一个jar包的不同版本,那个版本写在后面,就用谁的,因为后面的版本会对前面的进行覆盖
2、父类中用<dependencyManagement>进行依赖管理,父类中并没有直接导入jar包,只是提供了依赖链接,如果子类要使用,就去复制粘贴父类的依赖,子类自己进行下载使用,注意:这时在子工程中,不能指定版本号
Maven的聚合;
为什么使用Maven的聚合 优势:只要将子工程聚合到父工程中,就可以实现效果:安装或清除父工程时,子工程会进行同步操作。
注意:Maven会按照依赖顺序自动安装子工程 语法
<modules>
<module>maven_helloworld</module>
<module>HelloFriend</module>
<module>MakeFriend</module>
</modules>