朝着先能干活的方向努力。。。奥利给!!!
作者:互联网
第一个礼拜慌张,搭建了开发环境,直接上springboot,后来感觉学不懂,然后周末重新定义了学习路线
第二个礼拜学习了maven mybatis spring springmvc,这个时候掌握了接口、curd
第三个礼拜 springboot,这个时候掌握了数据校验
但是一直搞这些理论、简单的demo项目也不个办法,我想该捅破窗户纸了,先从example上手吧,不懂就问。。。。
不然可能第四个礼拜就来活了,,,,,干起来。
学example、再看看研发相关系统、中间件、搞起来。。。。。。。
example学习
1.下载项目
git clone -b 分支名 远程仓库地址
2.用idea打开项目
3.观察项目是pom,因此先用maven下载依赖
4.观察项目目录结构,一个项目下有三个module
5.从外层父项目的pom看起,一行一行仔细的看,有不懂的记起来,学一下
尽管之前学习了,maven。但是你发现你学习的东西,和你做项目的东西可能并不能做到知行合一。因此还会有很多不知道的东西,不过不要紧直接通过这个看就能好一些,通过项目才能看出更多的问题。
<packaging>pom</packaging>
这是指项目的打包类型。java的项目一般用maven进行依赖管理,就像node用npm管理依赖一样。java项目通常很大,一个java项目下会有几个模块,每个模块就相当于是一个子项目。
因此可以想,如果一个java项目下面有2个module,那么在这个项目中,你就能看到3个pom文件。因为java项目用pom管理,父项目一个pom,剩下的两个子项目2个pom。
从项目的打包类型说起,所有的父项目的打包类型都为pom。父项目的pom比较值得关注,因为父项目的pom实际上将各个模块的通用部分抽离出来管理,各个子模块的pom放各自个性的部分。
说道父项目,也不得不提起一个modules。父项目的pom怎么管理子项目的呢,通过module将所有子项目引进。再用maven进行项目build的时候,实际上maven内部做了很多打包的工作,这个以后在学。
反过来,说道子项目,也不得不提起一个parent。作为子项目,也是需要明确自己的父项目是谁的,子项目会在其子pom的开头声明对父级的应用。另外子项目的打包类型只能是jar\war
目前我们项目是一个父项目,三个子module。子module的打包类型全为jar,父级项目的打包类型为pom
总结目前example项目,父级pom打包类型为pom,三个子项目打包类型全为jar
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <elasticsearch.version>6.3.2</elasticsearch.version> <netty.all.version>4.1.11.Final</netty.all.version> <mapstruct.version>1.3.1.Final</mapstruct.version> </properties>
之前学习的时候,也对properties元素有一点印象,但是看完这个就不知道为什么了这里要这么写了
其实properties完全可以理解,就是pom中配置,可以把pom文件中重复出现的值抽离出来,这样就不用多次定义了。比如版本号,如果pom中依赖有些依赖的版本号是一样的就可以抽离出来,方便管理。这里的第一个配置是让整个项目统一为utf-8的编码
如下为properties定义的常量,在pom中的使用,在java中发现一个比较有意思的,就是配置文件中的值,基本都可以用${}来获取,挺方便
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>${elasticsearch.version}</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>${elasticsearch.version}</version> </dependency>
继续看
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
</dependencies>
</dependencyManagement>
看到这里,就能看到dependencyManagement这个元素了。这个元素说实话之前也见过,但是真不懂这玩意是干啥的。。。。
首先说明一点,就是dependencyManagement这个元素一般出现在父级pom配置中。maven使用这个主要就是用它来管理项目依赖版本号的。使用pom中的dependencyManagement能够让所有子项目中引用一个依赖而不用显示列出版本号。
其实这样做的好处很明显,就是许多子项目痘印用同一个依赖,这样就能在父级项目中统一这个依赖的版本号,当依赖升级的时候也好管理,各个子项目如果想使用不同的依赖也可以个性化。
另外有一个很重要的点:dependencyManagement只是负责声明依赖,并不实现引入,所以子项目的pom需要显示声明需要用的依赖。
如下,便是子pom中的使用
<!--pagehelper--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> </dependency>
标签:依赖,奥利,项目,先能,maven,pom,朝着,子项目,打包 来源: https://blog.csdn.net/strivenoend/article/details/115164792