《Maven实战》 阅读笔记

2019-06-16  本文已影响0人  冬天只爱早晨

无Maven不项目,这是我的口号,但是一直没有系统的去看书,前段时间把《Maven实战》过了一遍做了些笔记,方便后面查阅

每个项目都有自己的坐标

2.png

依赖范围

3.png

范围类型有: 编译、测试、运行 三种classpath

(如第三方给的jar包,且仓库中心又没有,可以使用system范围,如)

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/lib/jsoup-proxy.jar</systemPath>
</dependency>

传递性依赖

[图片上传失败...(image-592326-1560672958805)]

依赖调解

两个依赖关系
A->B->C->X(1.0)
A->D->X(2.0)
两个依赖都间接来到X,
maven引用原则(依赖调解(Dependency Mediation))

A->B->Y(1,0)
A->C->Y(2,0)

可选依赖

7.png

[图片上传失败...(image-b3618b-1560672958805)]

9.png 10.png

仓库的布局

12.png

生命周期

15.png

继承

正确的设置relativePath很重要


17.png

可继承的pom元素


18.png

依赖范围 import的用法


19.png

插件跟依赖一样可以使用*Management来管理


20.png
21.png

反应堆

22.png 23.png 24.png 25.png

对于裁剪功能,需要用的时候可以查阅文档

测试

26.png
27.png

跳过测试
mvn package -DskipsTests

28.png 29.png 30.png

注意:上述几种命令行动态指定测试类的方法都应该只是临时使用,如果长时间只运行项目的某几个测试,那么测试就会慢慢失去其本来的意义。

加入测试

31.png

也可以使用excludes排除一些测试


32.png

WEB应用

33.png

版本号定义约定


34.png

[图片上传失败...(image-676088-1560672958805)]

Maven属性

内置属性:

${basedir} 标识项目根目录即包含pom.xml 文件的目录;
${version}标识项目版本;

POM属性:

自定义属性

可以通过<properties><xxx>val</xxx></properties>

Setting属性

36.png

Java属性变量

[图片上传失败...(image-d9785b-1560672958805)]

环境变量属性

38.png

最佳实践

上一篇下一篇

猜你喜欢

热点阅读