Maven:项目管理工具
1.概念:
Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
2.可以解决的问题:
1.解决jar包冲突,版本冲突问题
2.编译Java文件
3.一次运行多个单元测试
4.将代码与各种配置文件、资源整合定型打包
3.功能:
1.依赖管理:maven工程对jar包的管理过程。
- 传统web工程crm,jar包在项目中
- maven开发的crm项目,jar包不在项目中。jar包的坐标 --> jar包仓库 代码可重用
2.一件构建:
- 构建:指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理。这个过程称为构建。
- 一键构建:指的是整个构建过程,使用maven一个命令可以轻松完成整个工作。 mvn tomcat:run
4.安装
1.Apache-maven-3.5.2下载地址:http://archive.apache.org/dist/maven/maven-3/ 直接解压安装包即可
2.配置环境变量
右键点击此电脑,选择属性-->高级系统设置-->环境变量,添加MAVEN_HOME:maven解压目录,并将maven配置到路径PASH中:%MAVEN_HOME%\bin;
3.在命令窗口输入mvn -v检测是否配置成功
4.目录结构:
1.bin:存放了maven的命令,比如我们前面用到的 mvn tomcat:run
2.boot:存放了一些maven本身的引导程序,如类加载器等
3.conf:存放了maven的一些配置文件,如setting.xml文件
4.lib:存放了maven本身运行所需的一些jar包
5.仓库
- 在conf目录下的settings.xml文件:
1.默认仓库位置:Default: ${user.home}/.m2/repository 也即c:\.m2\repository
2.修改仓库位置:<localRepository>D:\APP\apache-maven-3.5.2-bin\maven_repository</localRepository>
- 仓库分类:
1.本地仓库
2.远程仓库【私服】:既可以从中央仓库调用jar包,又可以从本地上传jar包
3.中央仓库
maven工程,jar包的坐标 --> 系统盘找本地仓库 --联网情况下-> 中央仓库,放置了几乎所有开源的jar包 (自己)
--> 系统盘找本地仓库 --公司局域网情况下-> 远程仓库【私服】 --> 中央仓库 (公司)
6.maven项目标准目录结构:
1.src/main/java目录 核心代码部分
2.src/main/resources 配置文件部分
3.src/test/java目录 测试代码部分
4.src/test/resources 测试配置文件
5.src/main/webapp 页面资源,js、css、图片等等
7.常用命令:
1.mvn clean:删除编译好的文件
2.mvn compile:编译src/main/java目录下的代码生成.class文件
3.mvn test:编译src/test/java目录和src/main/java目录下的代码生成.class文件
4.mvn package:编译src/test/java目录和src/main/java目录下的代码并打包
5.mvn install:编译src/test/java目录和src/main/java目录下的代码、打包且把打包好的文件安装到本地仓库
8.生命周期:
1.清理生命周期:clean:清楚项目编译信息
2.默认生命周期:
1.compile:编译
2.test:测试
3.package:打包
4.install:安装
5.deploy:发布
3.站点生命周期
9.概念模型图:
1.依赖管理:
1.项目对象模型(POM):--> pom.xml
1.项目自身信息
2.项目运行所依赖的jar包信息
3.项目运行环境信息,比如:jdk,tomcat信息
2.依赖管理模型(Dependency) --> 项目运行所依赖的jar包信息
<dependency>
<groupId>javax.servlet</groupId> --> 公司组织的名称
<artifactId>servlet-api</artifactId> --> 项目名
<version>2.5</version> --> 版本号
</dependency>
2.一件构建:
1.默认生命周期:compile、test、package、install、deploy
每一个构建项目的命令都对应了maven底层一个插件
10.idea集成maven插件
1.File-->settings-->搜索maven-->修改Maven home directory为本地安装目录、修改User sttings file为本地安装目录中conf目录下settings.xml文件、Local repository
2.修改Runner-->设置VM Options为-DarchetypeCatalog=internal,使得不联网情况下也可构建maven工程
11.使用骨架创建工程
1.创建java工程-->quickstart
2.创建web工程-->webapp
12.修改运行环境
1.添加tomcat动态模板
File-->settings-->Live Templates-->+2-->custom-->+1-->tomcat7-->define-->XML 就可以通过tomcat7直接调用以下代码
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
2.添加jdk1.8动态模板
File-->settings-->Live Templates-->custom-->+1-->jdk1.8-->define-->XML 就可以通过jdk1.8直接调用以下代码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>utf-8</encoding>
</configuration>
</plugin>
13.依赖范围
依赖范围 编译时有效 测试时有效 运行时有效 例子
compile yes yes yes 默认
test no yes no Junit
provided yes yes no servlet/jsp
runtime no yes yes mysql
system yes yes no