maven学习记录 maven学习笔记

maven是什么

    不仅仅是个构建工具,还是一个依赖管理工具和项目信息管理工具;

    maven项目的核心是pom.xml文件,定义了项目如何构建,声明项目的依赖。

maven 命令

    clean 清理
    compile 编译
    package 打包
    install 安装
    deploy 发布

依赖

    根据坐标(gav)定位依赖

<dependency>
    <groupId>com.jiaxin.riskgroupId>
    <artifactId>risk-webartifactId>
    <version>1.0.0version>
    <scope>compilescope>
dependency>

依赖范围    

    compile 编译依赖
    test 测试依赖 (比如JUnit)
    provided 已提供依赖 编译、测试有效,运行时无效(由于容器已提供,不需要重复引入,比如servlet api)
    runtime 运行时依赖,测试、运行时有效,编译无效(如JDBC驱动实现,项目编译只需要JDBC提供的接口,执行测试和运行才需要具体实现)
    system 系统依赖,通过systemPath指定依赖文件,不通过maven仓库解析,往往与本机绑定(本地的,Maven仓库之外的类库文件)

依赖性传递

maven学习记录 maven学习笔记_第1张图片

maven 生命周期

    clean 目的是清理项目,包含 pre-clean clean post-clean
    default 定义了真正构建时所需要执行的所有步骤
    site 目的是建立和发布项目站点

maven插件目标参数配置

    在maven中使用-D参数,并伴随一个参数键=参数值的形式,来配置插件目标的参数
    mvn instal -Dmaven.test.skip = true

module 与 parent 聚合与继承

    聚合

    com.jiaxin.risk
    risk-parent
    pom
    1.0-SNAPSHOT
    
    risk-web
    risk-core
    risk-api
    

    继承

    
    risk-parent
    com.jiaxin.risk
    1.0-SNAPSHOT
    
    
    作为父模块的pom,其打包类型也必须为pom;
    元素relativePath表示父模块pom的相对路径,默认路径是../pom.xml,也就是父pom在上一层目录下;
    maven会首先根据relativePath检查父pom,如果找不到,在从本地仓库找;
    可继承的pom元素
    groupId 项目组id
    version 项目版本
    description 项目描述信息
    properties 自定义的maven属性
    dependencyManagement 项目的依赖管理配置
    repositories 项目的仓库位置
    build 包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等

依赖管理

dependencyManagement元素既能让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性。在dependencyManagement元素下的依赖声明不会引入实际的依赖,它可以约束dependencies下的依赖使用

插件管理

在该元素中配置的依赖不会造成实际的插件调用行为,当pom中配置了真正的plugin元素,并其groupId和artifactId与 pluginManagement中配置的插件匹配时,pluginManagement的配置才会影响实际的插件行为

私服

    maven学习记录 maven学习笔记_第2张图片

    私服是一个特殊的远程仓库,它是架设在局域网内的仓库服务,当Maven需要下载构建的使用,它先从私服请求,如果私服上没有的话,则从外部的远程仓库下载,然后缓存在私服上,再为Maven的下载请求提供服务



你可能感兴趣的:(maven)