Spring Cloud与微服务之父Maven模块

文章目录

  • 项目结构
  • springcloud-parent中pom.xml
    • springcloud-parent中pom.xml的作用
    • 源码

项目结构

接下来我将开始尝试创建基于SpringCloud的eureka微服务项目架构,首先看一下项目的总体文件模块结构:

Spring Cloud与微服务之父Maven模块

springcloud-parent中pom.xml

springcloud-parent中pom.xml的作用

springcloud-parent父模块在这里的作用主要有如下这么几点:

  • 指定项目的公共依赖模块

比如说下面的指定spring boot的parent,也就是说指定当前模块是哪一个Maven模块的子模块,这样自该模块下的所有子模块,全部都会继承该parent父模块中的依赖。

它的另一个作用是指定子模块所继承的公共依赖,比如说junit测试依赖,比如说logging日志依赖等等都是如此。

  • 加载子Maven模块

Maven父模块是通过如下方式自动加载子模块的:

这样我们在父模块中执行Maven指令,其Maven指令会自动的传递到子Maven模块中执行,比如说下面的指令就是如此:

它的意思是清理父模块以及子模块中的target文件夹

  • 指定子Maven模块的软件版本

根据Maven的规则,一旦在父模块中指定版本号,其子模块就不用指定版本号了,因为子模块的版本号默认与父模块相同。

  • 指定子Maven模块的插件信息

其通过plugins来指定子模块中所使用的插件版本及信息,这样子模块中就无需重复再写了,直接使用父模块中的插件及对应的版本,比如说Maven的编译插件maven-compiler-plugin等。

  • 指定子Maven模块的资源打包方式

在这里,其指定的是将Spring Cloud的配置文件视为资源文件进行使用,比如说打入war包等。当然,位于resources文件夹内的文件,默认就是资源文件,所以说这里也可以省略。

  • 指定Maven项目的私服上传地址

当我们配置好了distributionManagement,我们可以通过使用如下指令将项目发布到私服中:

其中的 指的是忽略测试文件。

  • 统一子模块中的父模块版本号

这里使用maven-resources-plugin插件来统一Maven众多子模块中的parent的版本号信息。

当我们修改了父模块的版本号时,我们要统一修改子模块中的版本号信息,此时我们可以直接执行如下命令:

当然,我们还可以使用另一种方式,就是在所有的子模块的parent中通过EL表达式指定父模块的版本号,如下:

这里的代码亲测可用,只是在IDEA中报错,但是并不影响使用,而由于我有洁癖,看着IDE报红,实在不忍直视,所以说就没有采用这种方式,而是直接通过maven-resources-plugin来进行统一管理。

源码

源码:

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树Java概览Maven基础91484 人正在系统学习中

来源:张侦毅

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年11月9日
下一篇 2018年11月9日

相关推荐