java web之maven学习

maven的概念模型

maven是Apache下的一个开源项目,它是一个项目管理工具,它用于对java项目进行项目构建、依赖管理及项目信息管理。当前使用maven的项在持续增长。 
maven包含了一个项目对象模型(Project Object Mobel),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 
maven的概念模型用图来表示即为: 
这里写图片描述

  • 项目对象模型(Project Object Mobel) 
    通过pom.xml定义项目的坐标、项目依赖、项目信息、插件目标等。每个maven工程中都有一个pom.xml文件(核心配置文件),该文件里面定义了工程所依赖的jar包、本工程的坐标、打包运行方式等。
  • 依赖管理系统(Dependency Management System) 
    maven的基础核心,通过定义项目所依赖组件的坐标由maven进行依赖管理。也即maven通过坐标对项目工程所依赖的jar包进行统一规范的管理。 
    比如:项目依赖Struts2.3.24,通过在pom.xml中定义依赖即可将Struts2的jar包自动加入到工程中,pom.xml中定义依赖如下:

    <dependency>
        <groundId>org.apache.struts</groundId>
        <artifactId>struts2-core</artifactId>
        <version>2.3.24</version>
    </dependency>
    • 1
    • 2
    • 3
    • 4
    • 5
  • 一个项目生命周期(Project Lifecycle) 
    一个软件开发人员每天都在完成项目的生命周期:清理、编译、测试、部署,有的手工完成,有的通过Ant(也是一个项目构建工具)脚本自动完成,maven将项目的生命周期抽象统一为:清理、初始化、编译、测试、报告、打包、部署、站点生成等。 
    这里写图片描述
    maven就是要保证一致的项目构建流程,通过执行一些简单命令即可实现上边生命周期的各个过程。
  • 一组标准集合 
    maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。 
    我在这儿还是强调一遍:maven工程有自己标准的工程目录结构、有标准的坐标定义。
  • 插件(plugin)目标(goal) 
    maven管理项目生命周期过程都是基于插件完成的。

maven的仓库

maven工作需要配置仓库,本地的项目A、项目B等通过maven从远程仓库(可以理解为互联网上的仓库)下载jar包并保存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了。可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。 
下面描述了maven中仓库的类型: 
这里写图片描述

  • 本地仓库:用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找。 
    我的理解:本地仓库就相当于缓存,工程第一次会从远程仓库(互联网)去下载jar包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载,先从本地仓库找,如果找不到才会去远程仓库找。
  • 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认从远程仓库下载。 
    可以理解为在我们公司内部架设一台私服,其它公司架设一台仓库,且对外公开,这样的仓库就可看作远程仓库。
  • 中央仓库:在maven环境内部内置一个远程仓库地址:http://repo1.maven.org/maven2,它是中央仓库(即特殊的远程仓库),服务于整个互联网,它是由maven团队自己维护的,里面由大量的常用类库,并包含了世界上大部分流行的开源项目构件。 
    本地仓库没有的jar包,maven默认从中央仓库下载。

maven安装与配置 

下载网址:http://maven.apache.org/download.cgi 

这里写图片描述

  • bin目录:mvn.bat(以run方式运行项目)、mvnDebug.bat(以debug方式运行项目)
  • boot目录:maven运行需要的类加载器
  • conf目录:settings.xml,整个maven工具的核心配置文件
  • lib目录:maven运行依赖的jar包。

环境变量设置

%MAVEN_HOME%为你安装的maven的路径。

%MAVEN_HOME%\bin加入到path环境变量中 

本地仓库配置

本地仓库是用来存放联网下载的maven插件和jar包,maven本地仓库有的jar包将不再从互联网下载,所以本地仓库就相当于一个缓存。 
在maven的安装目录中的conf目录下有一个settings.xml文件,在这个文件中可配置本地仓库,如下图: 
这里写图片描述
如果本地仓库不配置(那么就会从互联网上下载jar包,而且下载速度贼慢),那么默认的本地仓库的位置就是${user.dir}/.m2/repository目录

添加阿里源 ,找到  <mirrors>  </ mirrors>标签,在标签内部 添加内容如下:

    <mirror>
      <id>AliMaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>

我们还要理解全局settings配置文件用户settings配置文件的区别:

  • 全局settings配置文件:就是maven的安装目录中的conf目录下的settings.xml文件。该文件里面的所有配置可应用于所有项目。
  • 用户settings配置文件:在${user.dir}/.m2/repository目录下。如果某些用户需要对maven特殊设置,用户可以自定义settings文件(虽然在本教程中不会使用到,但我们也应该要有所了解)。

IDEA 中配置maven:

File——Settings----maven,配置相关项。

Repository配置下库的地址。

idea创建maven项目时选择maven-archetype-quickstart.

idea创建maven web项目时选择maven-archetype-webapp.

具体参考https://www.cnblogs.com/1314wamm/p/7475771.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值