其他分享
首页 > 其他分享> > 朝着先能干活的方向努力。。。奥利给!!!

朝着先能干活的方向努力。。。奥利给!!!

作者:互联网

第一个礼拜慌张,搭建了开发环境,直接上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