maven学习笔记

1,介绍:

用来管理项目依赖和项目结构,约定优于配置,超级pom(maven-model-builder-3.5.4)里面默认配置了很多东西(java目录,编译目录...),用maven创建管项目就遵循maven的配置。

2,setting.xml(总配置文件):

  • mirrors配置
<mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/mvn/view</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>ibiblio</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
    </mirror>
    <mirror>
        <id>jboss-public-repository-group</id>
        <mirrorOf>central</mirrorOf>
        <name>JBoss Public Repository Group</name>
        <url>http://repository.jboss.org/nexus/content/groups/public</url>
    </mirror>
    <mirror>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <url>http://repo1.maven.org/maven2/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>repo2</id>
        <mirrorOf>central</mirrorOf>
        <name>Human Readable Name for this Mirror.</name>
        <url>http://repo2.maven.org/maven2/</url>
    </mirror>
</mirrors>  
  • localRepository :本地仓库目录配置
  • pluginGroups:插件配置,运行的时候不用写groupId和版本号。
  • servers:私服设置
  • profiles:切换环境配置。启动maven项目的时候可根据参数不同使用不同环境。

3,pom.xml标签介绍:

  • groupId:公司域名
  • artifactId:功能名
  • version:版本号
  • packaging:打包方式。
  • properties:设置变量,(控制版本)
  • dependencyManagement:只能出现在父pom中,用于统一版本号。如果直接放到dependencies里面,子项目引用父项目时会同时引用父项目所有jar包,dependencyManagement里面引用的jar,子项目需手动引入使用但不用写jar版本。
  • dependency:

 

  1. type:默认jar
  2. scope: 使用场景(什么时候使用这个jar,使用完之后会不会打包)。
    1. compile:默认会编译和打包;:打包不会有这jar,
    2. provided:仅仅使用这个jar用来编译,打包中不会再有这个文件(servlet包,运行环境tomcate中有这个jar了,但是编译时如果没有这个包则无法编译,则需要配置),
    3. runtime:运行时才需要(jdbc驱动:编译时使用jdbc接口就行,运行时才需要驱动实例);
    4. system:本地jar,中央仓库没有(自己修改过的jar,自己写的jar)
  3. 传递性:引用一个项目时,会自动引入改项目的所有引用jar,这就是传递依赖。maven_项目的依赖、聚合、继承
    。 这样结构的项目比较好,不会重复冗余引用。一般项目的结构如下:
  4. 查看pom文件的依赖信息命令:mvn dependency:tree>d.txt。
  5. 依赖仲裁:
    1. 版本顺序:依赖版本的就近依赖:  jar版本由最近项目指定的为准。(最短路径原则)
    2. 加载先后:按照pom文件中的先后顺序加载。
  6. 可以用exclusions标签去除传递依赖,解决版本冲突问题,排除包。

4,maven生命周期:

没太搞懂,生命周期有三个阶段:clean、default、site。每个阶段由多个Phases组成,每个phases由多个插件goals组成。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值