maven 学习1

2019-07-24  本文已影响0人  ksvsds

什么是maven

在之前是使用下载jar包的形式,不方便管理jar包,而且容易冲突,需要定义相同的东西。

引入maven不做重复的东西。

maven 读音 [ˈmeɪvn]

优势

  1. convention over configuration 约定优于配置
    • 超级pom的path \lib\maven-model-builder-3.5.0.jar\org\apache\maven\model\ pom.xml 约定了项目pom的位置
  2. 使用简单
  3. 测试支持
  4. 构建简单
  5. CI
  6. 插件丰富

使用

配置

  1. Windows path

  2. Linux .bash_profile

  3. MAVEN_OPTS 可以配置系统变量

maven在使用时会

  1. 先找~ /.m2/setting.ml

  2. 在找conf/setting.ml

  3. 配置setting.xml 常用的仓库

<mirror>
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>ui</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
    <id>osc_thirdparty</id>
    <mirrorOf>thirdparty</mirrorOf>
    <url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>

  1. pom.xml配置

    • groupId com.gupaoedu
    • artfactId 功能命名
    • version 版本号
    • packaging 打包方式 默认是jar
    • dependencyManagement
      1.只能出现在父类pom
      2.统一版本号
      3.声明式
    • Dependency
      1. Type 默认jar
      2. scope 意义:了解打包的过程,优化pom
      • comoile 编译 默认会打到包里面 例如 spring-core
      • test 测试 不会打到包里面
      • provided 编译 不会打到包里面 例如servlet
      • runtime 运行时有效 会到到包里 例如JDBC驱动实现
      • system 本地一些jar包
      • 传递依赖
        | | compile | test | provided |runtime|
        |:--:|:--:|:--:|:--:|:--:|
        | compile | compile | - | - |runtime|
        | test |test | - | - |test|
        | provided |provided |- | - |provided|
        |runtime |runtime | - | - |runtime|
      1. 依赖仲裁
      • 最短路径原则
      • 加载先后原则
      1. exclusions
      • 排除包
  2. 生命周期 lifecycle/phase/goal

    • A Build Lifecycle is Made Up of Phases
    • 构建生命周期由阶段组成
    • A Build Phase is Made Up of Plugin Goals
    • 构建阶段由插件目标组成
上一篇 下一篇

猜你喜欢

热点阅读