1.什么是Maven

      Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。

2.Maven解决的问题

  • jar包的声明式依赖管理与管理
  • 自动构建、发布项目。maven可以通过一个命令实现自动构建软件项目

2.1maven下载jar包的流程(无私服)

这里写图片描述

  • 首先去本地仓库查找,如果没有去中央仓库,如果中央仓库没有就报错。

2.2maven下载jar包的流程(私服)

这里写图片描述

  • 首先去本地仓库查找,如果没有去私服查找,如果私服没有,那么去中央仓库查找,如果中央仓库没有就报错。

2.3自动构建项目过程:

这里写图片描述

3.安装Maven

3.1首先下载maven(压缩版本)

这里写图片描述

此处用的为3.0.5版本,下载链接:Maven

3.2将下载的maven解压

此处我将下载的软件包解压到:D:\apache-maven-3.0.5

这里写图片描述

3.3将maven添加到环境变量中。

  • maven_home

这里写图片描述

  • path

这里写图片描述

  • 从控制台输入mvn -version,如果出现以下页面便安装成功

这里写图片描述

3.4查看软件目录:

这里写图片描述

lib :共享库。maven软件依赖的lib jar包
boot :plexus-classworlds-2.5.1.jar 
    该文件是jar包下载的引擎 ,通过该工具来下载jar包
    第三方项目依赖的jar包
    maven本身的软件构建的生命周期插件的jar包,默认是没有集成这些插件清除插件 --编译插件 -- 打包插件
conf:settins.xml
    maven 配置文件 :
    配置的是本地仓库地址 以及服务器的验证
bin:maven 可执行的命令
  • 中央仓库的路径在哪里配置?
    %maven_home%\lib\maven-model-builder-3.2.1.jar里面有一个pom.xml文件,里面配置如下

 <!--第三方jar包下载的地址-->
 <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
 <!--maven的生命周期插件的下载地址-->
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>

3.5 设置本地仓库地址

  • 首先将setting复制到C:\Users\wpx\.m2文件夹下面(如果没有,创建改文件夹)

这里写图片描述

  • 修改本地仓库的地址

这里写图片描述

3.6 如果国外网站下载jar速度慢,修改镜像地址

  • 修改setting文件(此处提供一个国内镜像)
<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

这里写图片描述

4.maven项目结构和常用命令

4.1.maven的项目结构

src
    main
        java//存放项目的源文件
        resources//存放项目的资源文件
    test
        java//存放项目测试的源文件
        resources//存放项目测试的资源文件
target  : 该文件夹可有可无,是编译src后的输出文件的目录,没有则自动创建
pom.xml : (project ojbect  model):项目对象模型 ,它是maven核心配置文件

4.2.新建一个Hello项目(用于介绍POM.xml)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <!--pom 版本-->
      <modelVersion>4.0.0</modelVersion>
      <!--组id  
         maven 用坐标概念来标识 jar包
          坐标=groupId+artifactId+version
      -->
      <groupId>cn.skd.maven</groupId>
      <!--构建物id :产品id-->
      <artifactId>Hello</artifactId>
      <!--版本 :SNAPSHOT :测试版本 ,镜像版本   release :发行版本,最终版本-->
      <version>0.0.1-SNAPSHOT</version>
      <!--发布的是jar包  ,默认是jar包,也可以使war包等-->
      <packaging>jar</packaging>
      <!--项目名称 ,可写可不写-->
      <name>Hello</name>
        <dependencies>
          <!--jar包声明式依赖  依赖  junit4.9jar包-->
            <dependency>
               <!--用坐标来标识jar包: 坐标=groupId+artifactId+version -->
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.9</version>
                <!--依赖的jar包的使用范围 : 当测试时使用该jar包
                    test 、 compile(默认)  
                    注意:test不会间接依赖。只有compile才会间接依赖
                -->
                <scope>test</scope>
            </dependency>       
        </dependencies>
    </project>
  • pom坐标的组成
    • groupId:组id ,机构名,公司名:好比公司id
    • artifactId:构建物id ,产品名或者产品的id
    • version :版本号

4.3maven常用命令

  • 首先应该进入项目目录,比如我们的hello项目

这里写图片描述

这里写图片描述

  • 常用命令

     mvn clean :清除
     mvn compile :编译
     mvn  package :打包
     mvn  install : 安装到本地仓库
     mvn deploy :部署 ,部署到私服 (局域网或者是外网)
    

需要注意的是:如果我使用某一个命令,他会依次执行前面的生命周期过程,比如,我执行mvn deploy命令,maven会首先clean->compile->package->install->deploy

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐