[关闭]
@xiaoxiaowang 2019-06-16T08:06:47.000000Z 字数 1765 阅读 650

Maven实战 笔记

Java Maven 笔记


每个项目都有自己的坐标

2.png

依赖范围

3.png

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

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

  1. <dependency>
  2. <groupId>org.jsoup</groupId>
  3. <artifactId>jsoup</artifactId>
  4. <version>1.0</version>
  5. <scope>system</scope>
  6. <systemPath>${project.basedir}/src/lib/jsoup-proxy.jar</systemPath>
  7. </dependency>

传递性依赖

6.png

依赖调解

两个依赖关系
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

8.png

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

35.png

Maven属性

内置属性:

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

POM属性:

自定义属性

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

Setting属性

36.png

Java属性变量

37.png

环境变量属性

38.png

最佳实践

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注