1.maven的基本配置
下载解压maven
环境变量配置
添加M2_HOME:对应Maven的解压目录即可。
编辑Path环境变量:
在cmd窗口输入mvn -v查看
Settings.xml文件配置
在标签内添加自己的本地位置路径
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\tools\repository</localRepository>
修改maven默认的JDK版本
在标签下添加一个标签,修改maven默认的JDK版本。
<profile>
<id>JDK-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
添加国内镜像源
添加标签下,添加国内镜像源,这样下载jar包速度很快。默认的中央仓库有时候甚至连接不通。一般使用阿里云镜像库即可。这里我就都加上了,Maven会默认从这几个开始下载,没有的话就会去中央仓库了。
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
2.scope:作用域,范围
<dependency>
<groupid>org.hamcrest</groupid>
<artifactid>hamcrest-core</artifactid>
<version>1.5</version>
<scope>test</scope>
</dependency>
scope常用的关键字:
compile:参与开发,测试,部署,运行
test:只参与测试
provided:参与开发,测试,不参与部署运行(由服务器支持运行如servlet-api)
scope最容易出现jar包冲突问题,注意compile的使用
3.maven的坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
4.仓库
私服:架设在当前局域网,为网中所有Maven工程服务
访问顺序是:用户访问私服找jar包,私服没有,那么私服就在网上下载,此后就有了这个jar包了
中央仓库:架设在Internet上,为全世界所有maven项目服务
中央仓库的镜像:架设在各大洲,为中央仓库分流,减轻中央仓库压力
5.dos窗口或者命令操作常用:
6.在maven项目A里导入其他maven 项目B
第一步
右击B项目的pom文件,run as maven——》install。这样就将项目加入到了我们的maven仓库。
第二步:
在A的pom文件中,导入B的pom文件中的坐标。就可以了。
这样以后,就会发生传递依赖,即B中的默认作用域的jar包(compile)会出现在A中,其他不会传递,前提是A中本来没有指定这个jar包。
依赖的传递顺序是:就近原则,如果有两个项目与A项目距离一样,那么谁先加入到A项目中,就用谁。
其实就是类似于多继承,子类可以拥有父类所有方法,子类可以重写父类方法
7.依赖排除:用于不想导入依赖的jar包
这也是可以传递的,即“子类”也会不导入排除的依赖
8.统一管理版本号
用properties标签设置版本号
用EL表达式调用
9.将junit版本管理提取到父工程,子工程不指定版本号
(1)
(2)(3)
(4)
(5)
10.聚合
作用:一键安装各个模块到本地仓库
配置方式:在一个总的聚合工程中配置各个参与聚合的模块