zoukankan      html  css  js  c++  java
  • maven 是什么?

      在了解maven的概念之前,我一直都在项目中使用maven,但是对于maven的了解,只能说连个皮毛都算不上,一直到项目中,自己机械化的deploy项目的时候,发现报错,赶紧报告开发组长,这私服是不是挂了,怎么deploy不成功,然而,组长说给你科普一下maven吧,deploy是只需要deploy api项目就行,不需要deploy项目center,同事也趁机说小陈好好学习maven吧,此时我老脸一红,做了一年的开发了,竟然对maven一无所知,那怎么行,那就从最基础的开始吧。

      1.什么是maven

      Maven 是一个项目管理工具,它包含了一个项目对象模 型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑。

      2.maven的作用

      1)依赖管理

      maven 工程中不直接将 jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需 jar 包的坐标,这样就很好的避免了 jar 直接引入进来,在需要用到 jar 包的时候,只要查找 pom.xml 文 件,再通过 pom.xml 文件中的坐标,到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从 而找到这些 jar 包,再把这些 jar 包拿去运行。

      2)一键构建

      什么是构建? 指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个 过程称为构建。

       一键构建 指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。

      Maven 规范化构建流程如下:

         

      3.maven软件

      1)maven软件目录

      

      bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:run

      boot:存放了一些 maven 本身的引导程序,如类加载器等

      conf:存放了 maven 的一些配置文件,如 setting.xml 文件

      lib:存放了 maven 本身运行所需的一些 jar 包 

      2)maven安装验证

      通过 mvn -v命令检查 maven 是否安装成功,看到 maven 的版本为 3.5.2 及 java 版本为 1.8 即为安装 成功。

      4.maven仓库

      maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的项目 A、项目 B 等都会通过 maven 软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存在本地仓库,本地仓库 就是本地文 件夹,当第二次需要此 jar 包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库 理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

      

       (1)本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找

       (2)远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。 远程仓库可以在互联网内也可以在局域网内。

       (3)中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件。

        全局 setting 与用户 setting maven 仓库地址、私服等配置信息需要在 setting.xml 文件中配置,分为全局配置和用户配置。 在 maven 安装目录下的有 conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project 项目,它作为 maven 的全局配置。 如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:${user.dir} /.m2/settings.xml 目录中,${user.dir} 指 windows 中的用户目录。 maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

      5.maven工程的认识

      1)maven工程的目录结构

      

       作为一个 maven 工程,它的 src 目录和 pom.xml 是必备的。 进入 src 目录后,我们发现它里面的目录结构如下:

      

       src/main/java —— 存放项目的.java 文件

      src/main/resources —— 存放项目资源文件,如 spring, hibernate 配置文件

      src/test/java —— 存放所有单元测试.java 文件,如 JUnit 测试类

      src/test/resources —— 测试资源文件

      target —— 项目输出位置,编译后的 class 文件会输出到此目录

      pom.xml——maven 项目核心配置文件

       6.maven常用的命令

      1)compile

      compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。

      2) test

      test 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。

      3) clean

      clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。

      4)package

      package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包。

      5) install

      install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。

      从运行结果中,可以看出: 当后面的命令执行时,前面的操作过程也都会自动执行,

      6)Maven 指令的生命周期

      maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”, 这三套生命周期分别是:

      Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

      Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

      Site Lifecycle 生成项目报告,站点,发布站点。

      好了,基础就学到这里,下节进行更高级课程的maven学习

       

  • 相关阅读:
    mongodb 查询缓慢问题
    java中的移位运算符总结
    git push到GitHub的时候遇到! [rejected] master -> master (non-fast-forward)的问题
    Docker映射详解,没问题了!
    Alibaba开源的Java诊断工具 -- Arthas
    SpringBoot 程序启动时将数据库的字典表加载进内存中
    [Tips] 批量解析电子发票的工具
    [Bugs] ModuleNotFoundError: No module named 'conda'
    [Tips] vs code 代码自动格式化
    [Record] electron windows下配置
  • 原文地址:https://www.cnblogs.com/chcha1/p/12426420.html
Copyright © 2011-2022 走看看