Maven的概述和使⽤(超详细)
⽂章⽬录
1 Maven的概述
1.1 maven的概念
Maven是项⽬进⾏模型抽象,充分运⽤⾯向对象的思想,Maven可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的软件项⽬管理⼯具。Maven 除了以程序构建能⼒为特⾊之外,还提供⾼级项⽬管理⼯具。由于 Maven 的缺省构建规则有较⾼的可重⽤性,所以常常⽤两三⾏ Maven 构建脚本就可以构建简单的项⽬。
Maven是由Apache开发的⼀个⼯具。⽤来管理java项⽬, 依赖管理(jar包的管理),项⽬构建
特点:擅长管理⼤项⽬,⾃动管理开发者需要的包,⾃动进⾏下载我们需要的jar包
1.2 maven的作⽤
依赖管理: maven对项⽬的第三⽅构件(jar包)进⾏统⼀管理。向⼯程中加⼊jar包不要⼿⼯从其它地⽅拷贝,通过maven定义jar包的坐标,⾃动从maven仓库中去下载到⼯程中
项⽬构建: maven提供⼀套对项⽬⽣命周期管理的标准,开发⼈员、和测试⼈员统⼀使⽤maven进⾏项⽬构建。项⽬⽣命周期管理:编译、测试、打包、部署、运⾏
maven对⼯程分模块构建,提⾼开发效率
1.3 maven的概念模型
项⽬对象模型。POM对象模型,每个maven⼯程中都有⼀个l⽂件,定义⼯程所依赖的jar包,本⼯程的坐标,打包运⾏⽅式依赖管理系统(基础核⼼)。maven通过坐标对项⽬⼯程所依赖的jar包统⼀规范管理
maven定义⼀套项⽬⽣命周期。清理,初始化,编译,测试。报告,打包,部署,站点⽣成。
⼀组标准集合。maven⼯程有⾃⼰标准的⼯程⽬录结构,定义坐标有标准
maven管理项⽬⽣命周期都是基于插件完成的,例如开发中使⽤的tomcat插件
1.4 maven仓库
仓库
名称
作⽤
本地仓库相当于缓存,⼯程第⼀次会从远程仓库(互联⽹)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第⼆次不需要从远程仓库去下载。
先从本地仓库,如果不到才会去远程仓库。
中央
仓库
就是远程仓库,仓库中jar由专业团队(maven团队)统⼀维护。中央仓库的地址:/maven2/
远程仓库(私服)私服是⼀种特殊的远程仓库,它是架设在局域⽹内的仓库服务,私服代理⼴域⽹上的远程仓库,供局域⽹内的Maven⽤户使⽤。当Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
仓库存放的内容:
1. Maven⾃⾝运⾏所需要的插件
2. 第三⽅框架(spring/mybatis/springmvc)和⼯具类的jar包
3. 我们⾃⼰开发的maven项⽬安装后的jar包
1.5 maven的坐标
1. Maven的⼀个核⼼的作⽤就是管理项⽬的依赖,引⼊我们所需的各种jar包等。在Maven中,不论什么⼀个依赖、插件或者项⽬构建的
输出, 都能够称之为构件
2. 为了能⾃动化的解析任何⼀个Java构件. Maven必须将这些Jar包或者其他资源进⾏唯⼀标识,这是管理项⽬的依赖的基础,也就是我
们要说的坐标
坐标的定义元素如下:
groupId:项⽬组织唯⼀的标识符,实际对应JAVA的包的结构(⼀般写公司的组织名称 例如:com.itheim
a,com.alibaba)
artifactId: 项⽬的名称
version:定义项⽬的当前版本
2 maven的安装
2.1 本地安装
2.2 IDEA整合本地maven
使⽤软件版本号
1. 在IDEA中到Configure,进⼊setting
2. 在搜索框输⼊maven,在maven中设置配置⽂件⽬录和仓库存储⽬录
3. 在配置⽂件l中,添加下载源,采⽤国内的远程仓库,可加快maven项⽬在线下载速度
4. 解决创建项⽬慢的问题
3 IDEA创建maven⼯程
3.1 创建⼀个空⼯程
创建后的空项⽬
3.2 创建跳过⾻架的java项⽬
在空项⽬的基础上创建跳过⾻架的java项⽬
创建完成
跳过⾻架创建maven项⽬的项⽬⽬录结构最标准
3.3 创建有⾻架的java项⽬
创建后的⽬录结构,相对标准的⽬录结构少了,resources⽂件⽬录
添加resources⽬录
3.4 创建有⾻架的web项⽬
1.
2.
3.
mysql下载jar包
4.
5.新建成的有⾻架的web项⽬缺少很多⽬录
6.按照上续创建resources⽬录的⽅法补全后:
4 maven项⽬中l的初略介绍
。。。。。。。。。。。。。。。。。。。。。
5 maven的常见指令
5.1 clean命令
清除编译产⽣的target⽂件内容,可以配合相应命令⼀起使⽤,如:mvn clean package。
target⽬录被清除了
5.2 compile命令
该命令可以对src/main/java⽬录进⾏编译,⽣成.class⽂件
5.3 test命令
测试命令:⼀键测试src/test/java 下Junit的测试⽤例,减少挨个测试⽅法的⿇烦
5.4 package命令
5.4.1 对java项⽬打包
5.4.2 对web项⽬打包
修改包名:
5.5 install命令
打包后将其安装到本地仓库
安装完毕后,可以在本地仓库中到 对应的项⽬
6 依赖
6.1 maven插件
maven是⼀个核⼼引擎,提供了基本的项⽬处理能⼒和建设过程的管理,以及⼀系列的插件是⽤来执⾏实际建设任务。
maven插件可以完成⼀些特定功能。例如:集成jdk插件可以⽅便的修改项⽬的编译环境;集成tomcat插件后,⽆需安装tomcat服务器就可以运⾏tomcat进⾏项⽬的发布和测试。在l中通过plugin标签引⼊maven的功能插件
6.1.1 jdk编译版本的插件
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
6.1.2 tomcat插件
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>at.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--配置端⼝号-->
<port>80</port>
<!--配置项⽬路径-->
<path>/day1003</path>
</configuration>
</plugin>
运⾏:
tomcat 插件注意问题: Maven的中央仓库中只有tomcat7.X版本,如果想使⽤tomcat8.X版本,需要从第三⽅仓库查或者使⽤idea集成外部的tomcat插件
6.2 导⼊依赖
6.2.1 导⼊Junit坐标
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
即可进⾏代码测试
6.2.2 导⼊servlet的依赖
导⼊servlet的坐标依赖
<!-- mvnrepository/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
6.3 依赖的范围
依赖除了坐标之外,还有和标签⽤于标记此依赖的作⽤范围
⽤图说话:
6.4 继承
6.4.1 创建⽗模块和⼦模块
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论