Maven 建立父子项目和跨项目调用内容的步骤

使用Maven管理项目,同时我们是做微服务,所以对于微服务项目来说,使用Maven建立起一个父子项目这种关系,很方便管理(只是个人感觉)

设计层面

(1)服务端和客户端肯定是分开写的,另外还有一个公共的项目,比如一些实体类等都是可以作为公共的类放到这个公共的项目。

(2)这样来说,子项目至少有三个,server(服务层子项目)、web(视图层子项目)、common(公共层子项目)。这可不是定义哈,是我自己起的。

(3)父项目可以命名为parent,这样就构成了一个父子项目的概念。下面开始建立。

补充注意:这几天把一个小项目建好,交给领导,领导说我设计错误,将来会有上百个微服务项目,common如果作为单个的微服务的公共层,未免有点浪费,领导说应该是放所有微服务子项目共有的东西,具体我也不懂,所以在这里误解大家了,抱歉,但是建立父子项目的方法还是这样的,但是微服务项目设计不是这样的,可以参照!!!

创建父项目

(1)下边这张图是父子项目建立的不同之处,父项目建立是建Maven project,即项目。子项目建立的是Module,即模块。如下:

img

(2)选择Maven project开始建立父项目。如下图,选择create a simple project,原因父项目需要建立的packaging为POM,子项目建立的packaging为jar或者war,勾选此处,在下一步中可以选择packaging: img
(3)再次提醒,父项目的packaging选择POM,子项目选择Jar或者war,顺便说一句,一般来说,要创建在tomcat里运行的项目,应该是要创建war,比如本文说的service子项目和web子项目,应该是创建成war,但是有例外是,如果要创建spring boot微服务项目,因为spring boot采用的都是富jar形式,就需要所有的子项目都为jar,这仅仅是个人理解,具体按照自己的需求建立。

img

(4)如果不小心将父项目的packaging建立成不是POM的,可以打开项目的pom.xml文件,进行修改。如下:

img

(5)修改完保存后,项目会报错,直接项目右击选择Maven------->update project即可。

创建子项目

(1)子项目的创建必须选择maven module,同时在里边制定父项目就可以了,注意不要忘记,在前边将父项目的packing由Jar改为POM\,具体创建子项目步骤如下:

****img

(2)创建完之后就可以看到如下的内容:
img(3)同理,将service子项目和web子项目建立完成后,这时候点击父项目里的pom.xml,就会看到如下内容:img

(4)这样就完成了父子项目的创建。但是如何进行项目与项目之间的关联,还要进行一些配置。

跨项目访问内容

比如本文中的common子项目为公共项目,其中可以将公用的东西,比如实体类、工具类等存储到该项目,将来,可以在service子项目和web子项目中直接调用即可,如果达到这样的功能,就需要添加依赖标签。以service子项目调用common子项目为例,步骤如下:

(1)测试要求:首先在common子项目中建立一个Person类,然后在service子项目中建立一个TestPerson类,在该类中调用Person类。

​ ****img

(2)其实就是要在service子项目中引入common子项目的依赖即可。如下,在service子项目的pom.xml中添加如下内容:

img

(3)在service子项目中添加完以上一个依赖标签,该标签指向common子项目,这样就相当于将common子项目中的内容获取到了,注意写入以上的内容,前提,必须common子项目中有如下内容,该内容默认是存在的,只要不乱删除,就一直会有的,否则,就算在service子项目中填上上边的依赖,也无法获取到其中的内容。

img

(4)好了,在service子项目中测试一番吧,如下:

img

(5)这样就完成了项目之间的调用,将来就把所有的公共内容放到common子项目中,同理web子项目想要引入common子项目也是如此。

(6)除了公用的类,可以公用,也包括jar包,可以在common子项目中导入,这样service子项目中也可以用到该jar包。

父项目只是充当聚合层,不写任何代码,父项目只是负责管理依赖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android支付宝运动修改器,一键修改支付宝运动步数-修改支付宝运动步数工具下载不要root手机版-西西软件下载...

修改支付宝运动步数工具是一款支付宝运动步数修改工具和教程,QQ微信也可以修改,最近在支付宝中推出了各种运动活动,很多朋友表示想要直接刷步数,不想去亲自运动来增加步数。那么下面手机乐园水银师小编就为大家介绍了支付宝快速刷步数的方法&…

spring boot配置tomcat部署

spring boot本身默认为jar包运行&#xff0c;可以改为war包&#xff0c;然后运行在tomcat里 具体修改的步骤如下&#xff1a; 1.在pom.xml文件里添加需要的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>s…

android同步aar到jcenter,android上传aar到jcenter

一、jcenter配置1、jcenter官网注册账号官网地址&#xff1a;https://bintray.com注册页面&#xff1a;2、注册成功记录API Key 鼠标放在账户名上&#xff0c;点击Edit Profile,选择API Key,在这里是需要输入登录密码的&#xff0c;然后就可以看到你的key3、创建仓库点击此处进…

spring boot配置logback日志

spring boot配置logback日志 在上一篇spring boot入门里提过&#xff0c;Spring Boot默认的日志打印是logback,所以配置logback日志会很简单&#xff0c;但是也有注意的地方。 本次配置日志的需求 日志需要控制台打印和文件打印两种。其中文件打印按照日志级别分别保存到各自…

springboot-项目获取resources下文件的方法

spring项目获取resources下文件的方法 最近写读取模板文件做一些后续的处理&#xff0c;将文件放在了项目的resources 下&#xff0c;发现了一个好用的读取方法&#xff1a; 比如上边是你需要读取的文件&#xff1a; 读取的方法如下&#xff1a; //File file ResourceUtils…

几款经典好用的Android,经典实用 Android十款生活必备软件推荐

【IT168 应用】在众多Android应用中有许多优秀的生活方式软件&#xff0c;它们为我们的生活提供了各方面的服务&#xff0c;例如像查看天气预报、搜索周边美食、提醒重要事件等等。大家已经慢慢的熟悉了移动互联生活&#xff0c;尤其是工作中的白领&#xff0c;手机更成为了他们…

springboot配置单独的参数文件

一、介绍 是不是经常用Value注解&#xff1f;用过springboot的都知道它是从application.properties文件中引入某个变量的值&#xff0c;是不是已经灰常熟悉了&#xff1f; 默认在springboot启动后&#xff0c;加载application.properties文件&#xff0c;通过Value("${}&…

nacos初探--作为配置中心

什么是nacos Nacos 支持基于 DNS 和基于 RPC 的服务发现&#xff08;可以作为springcloud的注册中心&#xff09;、动态配置服务&#xff08;可以做配置中心&#xff09;、动态 DNS 服务。 官方介绍是这样的&#xff1a; Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提…

Module build failed: Error: Cannot find module ‘node-sass‘ Require stack报错解决

Module build failed: Error: Cannot find module ‘node-sass’ Require stack报错解决 异常信息 解决方法 设置用淘宝镜像下载 npm install --save-dev node-sass --registryhttps://registry.npm.taobao.org --disturlhttps://npm.taobao.org/dist --sass-binary-sitehtt…

xp系统怎样添加桌面计算机名,教你win10系统电脑桌面怎么添加日历

很多用户都会选择在电脑的桌面上建立一个日历小挂件来提醒自己&#xff0c;其实在电脑桌面添加日历&#xff0c;可防止用户耽误工作进程的安排&#xff0c;不知win10系统电脑桌面怎么添加日历的用户&#xff0c;请来看看下面的介绍吧。日历对很多用户来说是非常重要的&#xff…

什么是Nacos?Nacos注册配置中心介绍

一、什么是Nacos 英文全称Dynamic Naming and Configuration Service&#xff0c;Na为naming/nameServer即注册中心,co为configuration即注册中心&#xff0c;service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民 二、Nacos原理 nacos简单介绍 Nacos注册中心…

矩阵 计算机应用,《计算机视觉算法:基于OpenCV的计算机应用开发》 —3.3 元素级矩阵操作...

3.3 元素级矩阵操作基于元素的(元素级)矩阵操作是计算机视觉中的一类数学函数和算法&#xff0c;它处理矩阵的各个元素&#xff0c;或者说&#xff0c;图像中的每个像素。注意基于元素的操作可以并行化&#xff0c;因此矩阵元素的处理顺序不重要。这个特点是本节函数和算法与本…

微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比

一、ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目&#xff0c;是一个树型的目录服务&#xff0c;支持变更推送&#xff0c;适合作为 Dubbo 服务的注册中心&#xff0c;工业强度较高&#xff0c;可用于生产环境&#xff0c;推荐使用。 流程说明&#xff1a; 服务提…

springboot配置跨mapper.xml的全局变量

springboot配置跨mapper.xml的全局变量 有这样的需求&#xff0c;mybatis框架的mapper.xml&#xff0c;即映射文件里&#xff0c;如果需要配置一个全局变量&#xff0c;然后&#xff0c;在所有的mapper.xml里都能拿到使用。 这需求也不苛刻吧~ 后来查了下&#xff0c;发现对…

SpringBoot升级到2.0后默认时间格式变化_springboot接收date类型参数

springboot1.x时&#xff0c;请求返回默认将Date类型转换成时间戳&#xff1a; createTime: 1544693261000然而在升级到springboot2.0后&#xff0c;默认返回的时间格式变成了UTC字符串&#xff1a; createTime: "2021-12-13T09:27:41.0000000"对于网页端或安卓端&…

org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved

场景&#xff1a; spring项目中无法访问到对应controller&#xff0c;查看日志&#xff0c;没有报错&#xff0c;只有warnring&#xff1a; org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved [org.springframework.web.meth…

带桭字的名字_男孩带官运大气的名字有气魄有能力-可爱点

一个好的名字传承了祖辈的血脉烙印&#xff0c;寄托了父母的满心希望和浓重的情意&#xff0c;取一个官运财运旺的名字&#xff0c;相信能让男孩更加充满自信和动力&#xff0c;这里整理了男孩带官运大气的名字的内容&#xff0c;来看看有没有给你们带来灵感呢。1、景辉“景”字…

springboot基于mybatis扫描jar包中的controller、service、dao、xml

springboot基于mybatis扫描jar包中的controller、service、dao、xml 最近有这样的需求&#xff0c;是将某个业务模块接口&#xff0c;比如新闻的接口模块 作为一个公共固定的模块&#xff0c;整个包括controller 、model 、mapper 、mapper .xml &#xff0c;都通过jar 包的形…

java 后台和前端的消息提醒_滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列...

一面自我介绍项目介绍JVM类加载机制java的垃圾回收器都有哪些&#xff0c;说下g1的应用场景&#xff0c;平时你是如何搭配使用垃圾回收器的。红黑树的设计经常使用的设计模式&#xff1f;以及UML设计&#xff1f;hashmap实现的的数据结构是什么样的&#xff1f;当hash冲突过多时…

springboot 配置多个请求服务代理

springboot 配置服务代理 有时候&#xff0c;我们可能有下边这样的需求&#xff1a; 即&#xff0c;针对于分布式服务&#xff0c;我们会有多种业务接口服务&#xff0c;但是服务器上可能只要求开放一个服务的端口&#xff0c;比如上图的restA项目端口是对外开放的&#xff0…