zoukankan      html  css  js  c++  java
  • Maven

    一.需求
    1.maven将jar包保存到本地,不同项目都指向了rp目录下所需要的的jar包
    2.减少了寻找jar包的时间,通过gav,从远程仓库下载
    3.maven可以自动导入依赖的jar包
    4.maven可以拆分项目,原来都是通过package进行划分。有了maven就可以将项目划分成多个模块,模块间通过在pom文件中引入需要的模块的jar,来互相调用
     
    二.maven是一个自动化的构建工具
    构建过程包含:
    1.清理
    2.编译
    3.测试
    4.报告
    5.打包
    6.安装
    7部署
     
     
    maven的自动化构建就是自动的从构建过程的起点执行到结束。
     
    三.maven项目的目录结构
    1.根目录
    2.src
    3.pom文件
    4.main
    5.test
    6.java
    7.resource
    maven项目需要遵守一定的目录结构规范,因为项目使用maven构建,maven需要知道项目的结构。
     
    四.常用maven命令
    1.mvn clean
    2.mvn test-compile
    3.mvn compile
    4.mvn install
    5.mvn package
    6.mvn deploy
     
    maven核心程序中只定义了抽象的生命周期,但是具体的工作需要由特定的插件来完成。
     
    五.pom文件
    pom文件定义maven相关的一切设置
    gav
    groupid:公司域名跟项目名
    artifactid:模块名
    version:版本
     
    仓库搜索过程:本地仓库,中央仓库,远程仓库
    私服,远程仓库镜像(中央仓库的复制版)
    仓库中的内容:1.maven自身的插件 2.第三方jar包(第一方是jdk,第二方是自己) 3.自身项目的jar包
     
    六.jar包依赖的范围
    1.compile
    对主程序有效
    对测试程序有效
    参与打包
     
    2.test
    对主程序无效
    对测试程序有效
    不参与打包
     
    3.provided
    对主程序有效
    对测试程序有效
    不参与打包
    不参与部署
    example:servlet-api.jar
     
    七.Maven的生命周期
    不论要执行生命周期中的哪个阶段,都要从头开始
     
    八.jar包冲突
    由于maven的依赖传递,当我们需要A的依赖的时候,就会在pom.xml中引入A的jar包;而引入的A的jar包中可能又依赖B的jar包,这样Maven在解析pom.xml的时候,会依次将A、B 的jar包全部都引入进来。
     
    maven默认的策略
    1.路径最短
    2.新声明
     
    九.依赖传递
    非compile范围的依赖不能传递
    exclusion排除不需要的依赖
     
    10.统一版本号
    在properties中定义统一版本号
     
    11.Maven的继承
    创建一个maven工程为父工程,<dependencyManagement>配置依赖的统一管理,打包方式为pom
    在子工程中加上对父工程的引用
    子工程中不需要添加父工程中已有依赖的版本号
     
    <parent>
    <artifactId>geek</artifactId>
    <groupId>org.wzp</groupId>
    <version>1.0-SNAPSHOT</version>
    </parent>
    12.Maven的聚合
    在父工程中指明参与的模块
    <modules>
    <module>LearnDubbo</module>
    <module>LearnJdk</module>
    <module>LearnSpring</module>
    <module>LearnGson</module>
    </modules>

  • 相关阅读:
    免费的视频、音频转文本
    Errors are values
    Codebase Refactoring (with help from Go)
    Golang中的坑二
    Cleaner, more elegant, and wrong(msdn blog)
    Cleaner, more elegant, and wrong(翻译)
    Cleaner, more elegant, and harder to recognize(翻译)
    vue控制父子组件渲染顺序
    computed 和 watch 组合使用,监听数据全局数据状态
    webstorm破解方法
  • 原文地址:https://www.cnblogs.com/xwzp/p/13767017.html
Copyright © 2011-2022 走看看