maven基础

1. 参考文章

https://blog.csdn.net/ado1986/article/details/39547839
https://juejin.im/post/5a4a5e2bf265da4322418d7f#heading-22

2. 什么是maven

Maven作为一个构建工具,依赖管理工具和项目管理工具,他提供了中央仓库,能帮我们自动下载构件。
现在maven版本用的是3.5.4

3. maven常用命令
  • clean: 清理target
  • test:测试
  • compile:编译
  • package:编译、打包
  • install:编译、打包、打包到本地仓库,方便供其他人调用
  • deploy:发布
4. 依赖的配置
<project>
...
<dependencies>
    <dependency>
        <groupId>实际项目</groupId>
&emsp;&emsp;&emsp;&emsp; <artifactId>模块</artifactId>
&emsp;&emsp;&emsp;&emsp; <version>版本</version>
&emsp;&emsp;&emsp;&emsp; <type>依赖类型</type>
&emsp;&emsp;&emsp;&emsp; <scope>依赖范围</scope>
&emsp;&emsp;&emsp;&emsp; <optional>依赖是否可选</optional>
&emsp;&emsp;&emsp;&emsp; <!—主要用于排除传递性依赖-->
&emsp;&emsp;&emsp;&emsp; <exclusions>
&emsp;&emsp;&emsp;&emsp;     <exclusion>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;    <groupId></groupId>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; <artifactId></artifactId>
&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;</exclusion>
&emsp;&emsp;&emsp;&emsp; </exclusions>
&emsp;&emsp;</dependency>
<dependencies>
...
</project>
  • grounpId、artifactId和version:以来的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。
  • scope:依赖范围,控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系
    • compile:默认,编译、测试、运行都有效
    • test: 测试依赖范围,比如Jnuit,运行的用不到
    • provided: 编译的时候有效,运行无效,如servlet-api
    • runtime: 运行时有效。

A、B两个项目,A依赖B,当B中的fastjson的依赖范围scope为compile和runtime的时候,A才会依赖于B中的fastjson jar。
如果A,B都有同样的jar,A依赖B,那么用A自己的jar。

5. 依赖是否可选
  • optional:表示依赖是否可选,默认为false把相关都加载进来,如A、B两个项目,如果B中的fastjson使用了optional=true,那么A如果依赖了B,那么B中的fastjson不会传递到A来,默认为false是会传递得。
6. 排序依赖

exclusions属性进行排除,和optional在这里插入图片描述

7. 仓库
  • 本地仓库、中央仓库、镜像化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值