目录
Maven 下载与安装
1.什么是 Maven
2.Maven 下载地址
3.Maven 目录结构
4.配置环境变量
5.Maven 常用命令
坐标-仓库-生命周期
1.什么是坐标
2.什么是仓库
3.修改本地仓库位置
4.配置阿里云仓库
5.Maven生命周期
依赖-聚合-继承
1.依赖
2.聚合
3.继承
IntelliJ idea中配置Maven
IntelliJ idea 中创建 Maven JaveSE 项目
IntelliJ idea 中创建 Maven JaveEE 项目
Maven 是一个 Java 项目构建和管理工具。
作用:
http://maven.apache.org/download.cgi
bin目录:Maven的运行脚本。mvn.bat是基于windows的脚本。在cmd中每次输入一条mvn的命令都是在调用并执行这些脚本。
boot目录:该目录只有一个文件plexus-classworlds-x.x.x.jar。他是一个类加载器的框架,相对于JDK中的类加载器,他提供了更丰富的语法以方便配置,Maven使用这个框架来加载自己的类库。
conf目录:该目录包含一个非常重要的文件setting.xml。配置该文件就能在project中定制Maven的行为。
lib目录:包含了所有Maven运行时需要的java类库以及用到的第三方类库。
LICENSE:软件许可证。
NOTICE:所包含的第三方软件。
README.txt:包含Maven的简介。
将解压后的Maven的bin路径配置到环境变量path
在dos窗口下输入mvn -v查看Maven的版本信息
组成元素
groupId:一般代表公司名。
artifactId:一般为项目名。
version:版本号。
package:定义Maven项目的打包方式。
classifier:表示在相同版本下针对不同的环境或者jdk使用的jar。
仓库就是指存储所有项目的共享构件(包)的位置。
分为两大类:1.本地仓库,2.远程仓库。其中远程仓库分为:中央仓库,私服,其他公共库。
①本地仓库是在第一次执行maven命令的时候被创建,不是安装maven后创建。
②无论是Windows还是Linux,本地仓库的默认位置都是在用户目录下的${user.home}/.m2/repositpry/
③修改本地仓库的方式:
1.用户范围修改:把setting.xml放到.m2文件下。
2.全局修改:修改maven目录中setting.xml文件的localRepository。
不管是用户范围修改还是全局修改,都是在 settings.xml 文件中加入下面代码即可,只是修改的地方不一样.
用户范围修改,修改 下的 settings.xml 文件,(一般是这个).
全局修改,修改 maven 安装目录中 config 下的 settings.xml 文件.
具体就是修改如下的Xml代码
/Users/zhouzhenlin/.m2/repository
通过修改${user.home}/.m2/settings.xml 文件来配置远程仓库路径.
具体内容和示意图如下
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
生命周期介绍
1).Maven有三套相互独立的生命周期。
Clean Lifecycle:在进行真正的构建之前进行一些清理工作。
Default Lifecycle:构建核心部分,编译,测试,打包,部署等等。
Site Lifecycle:生成项目报告,站点,发布站点。
注意:运行任何一个阶段的时候,它前面的所有阶段都会被执行,这也就是为什么我们在运行mvn install的时候,代码会被编译,测试,打包。每个生命周期都包含一些阶段,阶段是有顺序的。
2).Clean Lifecycle
①pre-clean:执行清理前需要完成的工作。
②clean:清理上次构建生成的文件。
③post-clean:执行清理后需要完成的工作。
3).Default Lifecycle
①validate:验证工程是否正确,所需要的资源是否可用。
②compile:编译项目的源代码。
③test:测试已编译的源代码。
④package:已编译的代码打包。
⑤integration-test:将包处理和发布到一个能够进行集成测试的环境。
⑥verify:运行所有检查,验证包是否有效且达到质量标准。
⑦install:把包安装到本地仓库。
⑧deploy:在集成或发布环境下执行,将最终版本的包拷贝到远程仓库。
4).Site Lifecycle
①pre-site:生成项目站点之前需要完成的工作。
②site:生成项目站点文档。
③post-site:生成站点之后需要完成的工作。
④site-deploy:将项目站点发布到服务器。
项目中需要引入的jar包称之为依赖。
在pom.xml的dependencies标签里加入dependency标签,具体信息可以去https://mvnrepository.com/查询。
junit
junit
3.8.1
test
1)依赖的范围:依赖范围是用来控制与编译、测试、运行三总classpath的关系。
注意:在默认情况下scope的范围是compile。
2)依赖的传递性
如果A项目引入了a包,B项目引入了A项目,那么B项目也就引入了a包。
传递性的规则:
1 .路径最近优先:c->b->a,c依赖b,b依赖a。那么c会优先使用b中的包。
2.路径相同配置在前优先:c->b,c->a,c依赖b,c依赖a。如果c把依赖b的代码写在前面那么就优先使用b的包。
3)去除依赖:
如果b->a,而你b中不想要a中的某个包就可以使用去除依赖。
1.选择性依赖(optional)
在a项目里引入的包中加入
2.排除性依赖(exclusion)
在b项目里引用a项目的代码中加入exclusion标签
com.demo
demo
1.0-SNAPSHOT
不引入包的信息
不引入包的信息
Maven的聚合功能可以通过一个父模块将所有要构建模块整合起来,将父模块的打包声明为POM,通过
与面向对象的继承概念一样,通过继承消除重复编码的行为。父模块提取公共的部分,子模块使用
com.demo
father
0.0.1-SNAPSHOT
可继承的POM元素如下:
如下图,看到在 intelliJ idea 编辑器里面对maven进行配置。
一般默认配置是这样的:
这样的话,你就修改他默认位置的setting.xml文件,就可以修改,本地仓库的地址啦
1.新建项目
2.选择maven项目
1. 左边选择Maven
2. 勾选Create from archetype
3. 选择org.apache.maven.archetypes:maven-archetype-quickstart
4. Next
3. 项目参数
4.maven 目录
经过上个知识点的IDEA设置设置后,就可以看到如图所示的maven设置
5.确认创建项目
1.新建项目
2.选中maven webapp格式
1. 左边选中Maven
2. 勾选Create from archetype
3. 选中 org.apache.maven.archetypes:maven-archetype-webapp
4. Next
3.项目参数
4.确认Maven路径
这一步将看到Maven 配置中的参数,无需做改动
5.确认项目名称
无需改动,点击Finish即可
6新建java源代码目录
maven web项目默认是没有java源代码目录的,所以需要手动创建,并设置其为源代码目录
右键main目录-> New->Directory->输入java->右键java->Mark Directory as-> Sources Root
这样就创建了存放java源文件的目录了
7.标记之后的目录结构和颜色如下
8.配置项目和模块的编译输出目录
项目编译输出目录不需要改变,模块输出目录,只需要继承项目输出目录即可.
配置项目编译输出目录,如下图:
配置模块编译输出目录,如下图
9.配置 tomcat 服务器
需要先配置 facts 和 artifacts之后,再进行 tomcat 的配置
配置 tomcat 截图,如下:
10. Maven web 项目完整的项目结构
吃水不忘挖井人,时刻想念发帖人。