Maven实战 Item4 -- Maven核心概念_maven junit version(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

模块二
模块三

例如:对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合

../Hello ../HelloFriend ../MakeFriends

其中module的路径为相对路径。

七、继承

继承为了消除重复,我们把很多相同的配置提取出来,例如:grouptId,version等

7.1、继承配置代码

1
2 me.gacl.maven
3 ParentProject
4 0.0.1-SNAPSHOT
5 …/ParentProject/pom.xml
6

7.2、继承代码中定义属性

继承代码过程中,可以定义属性,例如:

1
2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3 <junit.version>4.9</junit.version>
4 <maven.version>0.0.1-SNAPSHOT</maven.version>
5

访问属性的方式为${junit.version},例如:

1
2 junit
3 junit
4 ${junit.version}
5 test
6

7.3、父模块用dependencyManagement进行管理

1
2
3
4 junit
5 junit
6 j u n i t . v e r s i o n < / v e r s i o n > 7 < s c o p e > t e s t < / s c o p e > 8 < / d e p e n d e n c y > 9 < d e p e n d e n c y > 10 < g r o u p I d > c n . i t c a s t . m a v e n < / g r o u p I d > 11 < a r t i f a c t I d > H e l l o F r i e n d < / a r t i f a c t I d > 12 < v e r s i o n > {junit.version}</version> 7 <scope>test</scope> 8 </dependency> 9 <dependency> 10 <groupId>cn.itcast.maven</groupId> 11 <artifactId>HelloFriend</artifactId> 12 <version> junit.version</version>7<scope>test</scope>8</dependency>9<dependency>10<groupId>cn.itcast.maven</groupId>11<artifactId>HelloFriend</artifactId>12<version>{maven.version}
13 jar
14 compile
15
16
17

这样的好处是子模块可以有选择行的继承,而不需要全部继承。

八、聚合与继承的关系

聚合主要为了快速构建项目,继承主要为了消除重复

九、聚合与继承实战演练

创建四个Maven项目,如下图所示:

这四个项目放在同一个目录下,方便后面进行聚合和继承

Parent项目是其它三个项目的父项目,主要是用来配置一些公共的配置,其它三个项目再通过继承的方式拥有Parent项目中的配置,首先配置Parent项目的pom.xml,添加对项目的Hello、HelloFriend、MakeFriends这三个模块进行聚合以及jar包依赖,pom.xml的配置信息如下:

Parent项目的pom.xml配置

1 <project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
2 xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
3 4.0.0
4
5 me.gacl.maven
6 Parent
7 0.0.1-SNAPSHOT
8 pom
9
10 Parent
11 http://maven.apache.org
12
13
14
15 …/Hello
16 …/HelloFriend
17 …/MakeFriends
18
19
20
21
22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23 <junit.version>4.9</junit.version>
24 <maven.version>0.0.1-SNAPSHOT</maven.version>
25
26
27
28
29
30
31
32 junit
33 junit
34
35 j u n i t . v e r s i o n < / v e r s i o n > 36 < s c o p e > t e s t < / s c o p e > 37 < / d e p e n d e n c y > 38 < d e p e n d e n c y > 39 < g r o u p I d > m e . g a c l . m a v e n < / g r o u p I d > 40 < a r t i f a c t I d > H e l l o < / a r t i f a c t I d > 41 < ! − − 访问 m a v e n . v e r s i o n 属性 − − > 42 < v e r s i o n > {junit.version}</version> 36 <scope>test</scope> 37 </dependency> 38 <dependency> 39 <groupId>me.gacl.maven</groupId> 40 <artifactId>Hello</artifactId> 41 <!-- 访问maven.version属性 --> 42 <version> junit.version</version>36<scope>test</scope>37</dependency>38<dependency>39<groupId>me.gacl.maven</groupId>40<artifactId>Hello</artifactId>41<!访问maven.version属性>42<version>{maven.version}
43 compile
44
45
46 me.gacl.maven
47 HelloFriend
48
49 ${maven.version}
50
51
52
53

在Hello项目的pom.xml中继承Parent项目的pom.xml配置

1 <project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
2 xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
3
4 4.0.0
5 Hello
6
7
8
9 me.gacl.maven
10 Parent
11 0.0.1-SNAPSHOT
12
13 …/Parent/pom.xml
14
15
16
17
18 junit
19 junit
20
21
22

在HelloFriend项目的pom.xml中继承Parent项目的pom.xml配置

1 <project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
2 xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
3 4.0.0
4 HelloFriend
5 HelloFriend
6
7
8
9 me.gacl.maven
10 Parent
11 0.0.1-SNAPSHOT
12 …/Parent/pom.xml
13
14
15
16
18 junit
19 junit
20
21
25
26 me.gacl.maven
27 Hello
28
29
30

在MakeFriends项目的pom.xml中继承Parent项目的pom.xml配置

1 <project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
2 xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
3 4.0.0
4 MakeFriends
5
6
7 me.gacl.maven
8 Parent
9 0.0.1-SNAPSHOT
10 …/Parent/pom.xml
11
12
13
14
16 junit
17 junit
18
19
20
24 me.gacl.maven
25 HelloFriend
26
27
28

以上的四个项目的pom.xml经过这样的配置之后,就完成了在Parent项目中聚合Hello、HelloFriend、MakeFriends这三个子项目(子模块),而Hello、HelloFriend、MakeFriends这三个子项目(子模块)也继承了Parent项目中的公共配置,这样就可以使用Maven一次性构建所有的项目了,如下图所示:

选中Parent项目的pom.xml文件→【Run As】→【Maven install】,这样Maven就会一次性同时构建Parent、Hello、HelloFriend、MakeFriends这四个项目,如下图所示:

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

下图所示:

学习分享,共勉

题外话,毕竟我工作多年,深知技术改革和创新的方向,Flutter作为跨平台开发技术、Flutter以其美观、快速、高效、开放等优势迅速俘获人心

[外链图片转存中…(img-ipvU1yle-1713702604628)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-TnfpgCmm-1713702604629)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值