Maven

今日学习目标:

一、Maven介绍

Maven介绍:

1-1概念:

Maven是Apache下的一个开源项目,纯java开发,它是一个项目管理工具,
它用于对java项目进行项目构建、依赖管理及项目信息管理。当前使用Maven的项目在持续增长。
一句话:maven是用来构建项目的工具
简历:熟练掌握svn/git/maven等项目管理和项目构建工具
Maven包含了一个项目对象模型 (清单文件)(Project Object Model),一组标准集合(清单文件中的jar包集合),一个项目生命周期(流程)(Project Lifecycle),一个依赖管理系统(标签)(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑(jdk tomcat)

1-2类似于maven项目管理工具

1.ANT apache ant :用来构建项目
2.Gradle。它相比maven的优点是简洁,它使用Grovvy脚本编写,不同于maven配置xml

1-3Maven概念模型:

在这里插入图片描述

二.Maven概念模型:

2-1、项目对象模型 (Project Object Model)

POM对象模型,每个maven工程中只一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。。
Pom.xml清单文件,里面定义了很多dependency,jar包的清单。

2-2、依赖管理系统(Dependency Management System)

maven通过坐标对项目工程所依赖的jar包统一规范管理。
比如:项目依赖springmvc4.3.,通过在pom.xml中定义依赖即可将springmvc的jar包自动加入工程:
pom.xml中定义依赖如下:

org.apache.spring
springmvc
4.3.24

2-3、maven定义一套项目生命周期(Project Lifecycle)

一个软件开发人员每天都在完成项目的生命周期:自动清理、编译、测试、部署,有的手工完成,有的通过Ant(也是一个项目构建工具)脚本自动完成,Maven将项目生命周期抽象统一为:清理、初始化、编译、测试、报告 、打包、部署、站点生成等。
在这里插入图片描述
maven就是要保证一致的项目构建流程,通过执行一些简单命令即可实现上边生命周期的各各过程。

清理、将原始的class文件清理掉

编译、将java文件编译成class文件

测试、测试代码是否可用

报告 、控制台打印的东西

打包、打成jar包或者war包

部署、将war包或者jar包,运行到制定的地方

2-4、一组标准集合

强调:maven工程有自己标准的工程目录结构、定义坐标有标准。多个dependency

2-5、maven 管理项目生命周期过程都是基于插件完成的
开发中使用tomcat的插件。

三.Maven仓库:

3-1、本地仓库

相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。
第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。

3-2、中央仓库

就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。
中央仓库的地址:http://repo1.maven.org/maven2/

3-3、远程仓库

http://maven.aliyun.com/mvn/view 阿里的远程仓库地址
在公司内部架设一台私服(服务器),其它公司架设一台仓库,对外公开。
公司搭建分为
外网 (前提知道网址:任何程序员都可以使用)
内网(仅供公司内部程序员使用)

四.Maven下载&安装:

4-1、下载

http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.3.9-bin.zip
使用方式:直接解压
在这里插入图片描述

4-2、配置环境变量

MAVEN_HOME
在这里插入图片描述
在这里插入图片描述

4-3、测试是否安装成功

在这里插入图片描述

五.Maven本地仓库的配置:

5-1 在maven的安装目录中conf/ settings.xml文件,

在这里配置本地仓库。
在这里插入图片描述
配置阿里的远程仓库
在这里插入图片描述

 <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>       
  </mirror>
5-2:本地仓库目录介绍

如果本地仓库不配置,默认地址: u s e r . d i r / . m 2 , u s e r . d i r ( w i n d o w s 用 户 目 录 ) 。 理 解 全 局 s e t t i n g 和 用 户 s e t t i n g 。 全 局 s e t t i n g : 在 m a v e n 的 安 装 目 录 中 c o n f / s e t t i n g s . x m l 文 件 . 所 有 配 置 应 用 于 所 有 项 目 。 用 户 s e t t i n g : {user.dir}/.m2,user.dir(windows用户目录)。 理解全局setting和用户setting。 全局setting:在maven的安装目录中conf/ settings.xml文件. 所有配置应用于所有项目。 用户setting: user.dir/.m2user.dir(windows)settingsettingsettingmavenconf/settings.xml.setting{user.dir}/.m2。
某些用户需要对maven特殊设置,用户可以自定义setting.
教学中统一使用全局setting.xml

六.IDEA中配置Maven及创建Maven项目

在idea中配置maven
在这里插入图片描述
第一步:创建maven项目
在这里插入图片描述
在这里插入图片描述
maven内部提供很多项目原型,方便去创建项目。(选择java和javaweb)
maven对所有工程管理基于坐标进行管理。
坐标包括:
group id:项目的名称,项目名称以域名的倒序,比如:cn.jiyun.taotao
artifactid:模块名称(子项目名称)
version:模块的版本,snapshot(快照版,没有正式发行)、release(正式发行版本)
第二步:maven项目目录介绍
在这里插入图片描述
备注:idea创建maven项目默认没有java目录 必须手动创建
在这里插入图片描述
在这里插入图片描述
第三步:设置编译版本插件
在这里插入图片描述

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</build>

七.Maven中pom.xml文件(重点)

Pom文件中打包方式为3种 war  jar  pom(父工程)
pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project > :文件的根节点 .
<modelversion > : pom.xml使用的对象模型版本 .
<groupId > :项目名称,一般写项目的域名
<artifactId > :模块名称,子项目名或模块名称
<version > :产品的版本号 . 
<packaging > :打包类型,一般有jar、war、pom 等 
<name > :项目的显示名,常用于 Maven 生成的文档。  
<description > :项目描述,常用于 Maven 生成的文档
<dependencies> :项目依赖构件(jar包)配置,配置项目依赖构件的坐标
<build> :项目构建配置,配置编译(jdk)、运行插件(tomcat)等。

启动maven项目
在这里插入图片描述

八.Maven的生命周期

编译命令 mvn compile
编译后 .class文件在 out下 (这个命令只会对java源程序编译, 不会编译测试代码 , 编译测试类 mvn test-compile , 编译后.class 文件在 out)
测试命令 mvn test
执行所有测试用例方法, 重新编译
清除命令 mvn clean
清除target目录 (清除所有编译结果或者打包结果 ),清理后编译。
打包命名 mvn package
java项目生成 jar包, web项目生成war包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值