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>

  • 相关阅读:
    normal matrix 正规矩阵
    可解释的机器学习
    Classical wave-optics analogy of quantum-information processing
    java高级性能增强
    nginx、keepalived、lvs了解
    大数据学习之路之Zookeeper
    JAVA中 成员变量和和实例变量一样吗?
    第三章
    Java第二章 基本语法知识点
    java第一章 JAVA语言概述知识点
  • 原文地址:https://www.cnblogs.com/xwzp/p/13767017.html
Copyright © 2011-2022 走看看