核心概念

    • 约定的项目结构
    • POM
    • 坐标
    • 依赖
    • 仓库
    • 生命周期 / 插件 / 目标

    依赖范围
    maven 的常用设置


    什么是 maven?

    • maven 是一个项目管理工具,它的功能主要分为两部分,一是项目中的依赖管理,然后是可以进行项目的构建。maven 中使用 pom.xml 文件来管理文件的结构,pom.xml 文件所包含的信息有项目的基本信息、项目所依赖的 jar 包,以及所用到的 maven 插件。然后 maven 会根据 pom 中列出来的依赖来逐一添加到本地仓库中,就不需要我们自己去手动添加了
    • 依赖传递:当我们将项目直接要用到的依赖添加到我们工程中之后,它们所依赖的 jar 包也会被自动添加到 项目中

    maven约定的项目结构

    • 一般结构
      • 根目录,一般以项目名称命名
      • src,存放源码
      • pom.xml,maven 工程的核心配置文件
      • main & test
      • java,存放 java 源码
      • resources,存放静态文件以及配置文件

    pom

    • project, object, model
    • pom.xml 对于 maven 工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行设置
    • properties 标签中可以定义 maven 的全局变量,在后面的 pom.xml 文件中可以通过 ${ 变量名 }来引用

    坐标 -> gav

    • groupid:公司或组织域名倒序 + 项目名
    • artifactid:模块名
    • version:版本
    • scope:jar 的应用范围:complie(默认值),test,provided

    maven 的常见命令

    • complie:将 maven 项目编译并输出到 target 文件夹中
    • test:测试命令,执行 src/test/java/ 下的单元测试类
    • clean:清理命令,清理之前编译的结果,即删除 target 目录中的原内容
    • package:打包命令,将项目打包成 jar 包或者 war 包

    maven 指令的声明周期

    • clean lifecycle
    • default lifecycle
      • complie
      • test
      • package
      • install - 安装到本地仓库
      • deploy - 部署到远程仓库
    • site lifecycle
      • 站点声明周期。生成项目报告,站点,发布站点

    quickstart

    dependencyManagement & dependencise

    • dependencyManagement 在父项目中明确版本 version,供子项目引入依赖时参考
    • 但 dependencyManagement 中只是声明依赖,并不实现真正的依赖,只有在子项目中才会真正地依赖对应的依赖

    random

    • 默认的本地仓库地址可以在 conf/settings.xml 中修改 - local repository 的注释