1.概念
Maven是一个项目管理工具,它包含了一个项目对象模型、一组标准集合、一个项目生命周期以及一个依赖管理系统,当使用Maven时,用一个明确定义的项目对象模型来描述项目,然后Maven可以应用横切的逻辑(共享或者自定义的插件)。
2.目录结构
• bin:二进制脚本文件目录
• boot:包含一个类加载器的框架, maven使用它加载自己的类库
• conf:配置文件目录,最重要的是settings.xml
• lib:maven运行所需要的jar包文件目录
3.自动建立目录骨架
mvn archetype:generate -DgroupId=com.imooc.maven -DartifactId=maven-service -Dversion=1.0.0SNAPSHOT -Dpackage=com.imooc.maven.demo
-DgroupId=组织名,公司网址反写+项目名
-DartifactId=项目名+模块名
-Dversion=版本号
-Dpackage=源代码所在的包名
4.坐标
Maven项目中的任何一个依赖jar或插件都称为构建,每一个构建通过坐标作为其唯一的标识,其中groupId、artifactId、version都能组合成坐标。
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.2.0-beta.4</version>
</dependency>
5.仓库
(1).本地仓库
默认是.m2/Repository,可以在settings.xml中修改。
<localRepository>/Users/wenlei/Documents/code/else/repository</localRepository>
(2).全球中央仓库
在pom.xml文件中添加依赖,maven首先会在本地仓库中查找依赖jar包,找不到的情况下,maven会到全球中央仓库http://repo.maven.apache.org.maven2下查找,找不到会报错。
(3).镜像仓库
因为在国内下载全球中央仓库中的依赖会很慢,所以国内一些组织或者公司会把中央仓库内的jar包下载下来建立自己的maven仓库,比较有名的有阿里云镜像仓库,更改镜像地址同样需要在settings.xml中修改。
<mirrors>
<mirror>
<id>mirror</id>
<mirrorOf>central,jcenter,!rdc-releases,!rdc-snapshots</mirrorOf>
<name>mirror</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
6.生命周期
(1).简介
Maven生命周期包括清理、验证、编译、测试、打包、集成测试、部署等。
(2).核心生命周期
• clean:清理上一次构建生成的所有文件。
• compile:编译项目的源代码。
• test:使用合适的单元测试框架运行测试,这些测试代码不会被打包或部署。
• package:接受编译好的代码,打包成可发布的格式,如jar包。
• install:将打好的项目包安装至本地仓库,以让其它项目依赖。
• deploy:将最终的项目包上传到远程仓库,以让其它项目共享。
执行一个生命周期的命令时,也会执行前一个周期的命令。