首页 > 代码库 > Maven学习笔记

Maven学习笔记

Maven介绍

     Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar,项目部署等Maven正是为了将开发人员从这些任务中解脱出来而诞生的。

.  1.maven 解决的问题
    - jar包的声明式依赖管理与管理
    - 自动构建、发布项目
      软件构建的生命周期:
         清除--> 编译-->测试-->报告-->打包(jar\war)-->安装-->部署到远程
   

 

   2. maven、ant、svn的区别
       - maven与ant之间的区别
          都是软件构建工具、软件管理工具,maven比ant更加强大,已经取代了ant
         maven优点:
         - jar包声明式依赖
         - jar包仓库
         - maven 与svn的区别
         1.maven 软件构建工具,是软件源码已经完毕,需要构建,需要部署与发布
         svn 是版本控制工具,是协同开发工具
         svn 仓库 :
           1. 项目源码保存
           2. 历史版本的备份
           3. 每一次版本的修改情况

 

 

         配置环境变量(配置之前,必须确定配置了JDK环境变量)

 

      MAVEN_HOME : D:\apache-maven-3.3.9
      把此命令添加到Path: %MAVEN_HOME%\bin\

 

      l 配置用户范围的settings.xml

 

      MAVEN_HOME/conf/settings.xml 全局的

 

      ~/.m2/settings.xml 单个用户的

 

 

      l 验证安装是否成功

 

      在命令行上输入: mvn -v;回车, 如看到下面信息表示安装成功

 

 技术分享

 

 

Maven目录分析

                     l bin:含有mvn运行的脚本

                     l boot:含有plexus-classworlds类加载器框架

                     l conf:含有settings.xml配置文件

                     l lib:含有Maven运行时所需要的java类库

                     l Settings.xml 中默认的用户库: ${user.home}/.m2/repository

                     l Maven默认仓库下载地址在: mavenlib目录下maven-model-builder-3.3.4.jarpom.xml

 

 

     Hello

 

       --src   

 

       -----main

 

       ----------java       --用来存放Java文件

 

       ----------resources   --用来存放资源文件

 

       -----test

 

       ---------java        --用来存放测试的Java文件

 

       ---------resources

 

       --target           --项目输出位置,编译完毕后自动生成

 

       --pom.xml        -- 项目对象模型的描述 ,它是maven配置的核心

 

 

Maven坐标

 

        类似在平面几何中坐标(x,y)可以标识平面中唯一的一点, Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范

      拥有了统一规范,就可以把查找工作交给机器

 

      l groupId:定义当前Maven项目隶属项目  (实际对应JAVA的包的结构, main目录里java的目录结构)

 

      l artifactId:定义实际项目中的一个模块(项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称)

 

      l version:定义当前项目的当前版本

 

Maven仓库

 

      l 何为Maven仓库:用来统一存储所有Maven共享构建的位置就是仓库

      Maven配置jar包的路径为:groupId/artifactId/version/artifactId-version

 

      l 本地仓库(~/.m2/repository/):每个用户只有一个本地仓库

 

      l 中央仓库(Maven默认的远程仓库)Maven默认的远程仓库下载地址为:http://repo1.maven.org/maven2

 

      l 私服:是一种特殊的远程仓库, 它是架设在局域网内的仓库, 主要是为了团队协作开发

 

      l 镜像:用来替代中央仓库, 速度一般比中央仓库快

 

 

  

  maven常用命令

 

    mvn -v 查看maven版本
              compile编译
            test 测试
          package 打包
          clean 清楚target
          install 安装jar包到本地仓库中

      创建目录的两种方式:
       1.archetype:generate 按照提示进行选择
       2.archetype:generate -DgroupId=组织名,公司网址的反写+项目名
                                 -DartifactId=项目名-模块名

Maven学习笔记