Maven基础

来源:互联网 发布:小猪php在线解密 编辑:程序博客网 时间:2024/06/05 06:47

Maven基本知识

  • Maven是约定优于配置的体现

  • 安装目录maven的setting文件是全局setting

  • maven-model-builder里面有个超级POM

  • maven命令的加载顺序

    • 先去用户目录下找
    • 再去找全局的
  • settings:

    • localRepository:repository的目录
    • pluginGroups: 注册插件到maven,在使用时,没有带groupid,就会在这里面寻找
    • profile: 根据环境来调整构建配置列表
  • POM中:

    • modelVersion版本号的来源:来自于超级POM
    • packaging默认是jar, 也可以是maven-plugin
    • description: 描述
    • module:模块
    • properties: 属性配置,${可以获取内置参数}
    • dependencyManager: 父POM中的依赖管理,用来统一版本号,子module不会直接使用父POM中的依赖,但是可以不用写版本号
    • dependency: 依赖
    • Type: 默认值为jar
    • Scope:默认是 compile,

      • test 测试
      • provided 编译但不会打包,但会影响测试。一般表示容器已经提供了(如serlvet)
      • runtime 运行时有效,比如mysql的包。常用于面向接口(如jdbc)的jar包
      • system 一般用在本地的jar 有一个属性< systempath >
  • 命令:

    • 打印依赖树:mvn dependency:tree > d.txt
    • 跳过test:mvn clean install -Dmaven.test.skip
  • 依赖传递:

    • 依赖可能存在公共的父依赖,也就是依赖会冗余
    • 如果依赖的东西已经引入了,就不要引入了(查看依赖树)
    • 依赖的scope会影响依赖是否传递
  • 依赖仲裁:

    • 加载顺序原则:先写的版本先加载
    • 版本号按就近原则(依赖树的深度)
  • 父POM可以是公司级别,部门级别的

  • 对所有的module做升级,在父POM中:

    所有的module应该和父POM的版本一致

    <build><plugin>    <goupId> org.codehaus.mojo    <artifactId>versions-maven-plugin    <version>2.3    <executions>        <phase>package        <goals>            <goal>
  • 生命周期:

    • clean: pre_clean, clean, post-clean
    • default: compile,package,install, deploy等
    • site: pre-site, site, post-site, site-deploy
  • 生命周期的理解

    1.A BuildLifecycle is Made Up of Phases
    2.A BuildPhase is Made Up of Plugin Goals

原创粉丝点击