使用Maven管理项目,同时我们是做微服务,所以对于微服务项目来说,使用Maven建立起一个父子项目这种关系,很方便管理(只是个人感觉)
设计层面
(1)服务端和客户端肯定是分开写的,另外还有一个公共的项目,比如一些实体类等都是可以作为公共的类放到这个公共的项目。
(2)这样来说,子项目至少有三个,server(服务层子项目)、web(视图层子项目)、common(公共层子项目)。这可不是定义哈,是我自己起的。
(3)父项目可以命名为parent,这样就构成了一个父子项目的概念。下面开始建立。
补充注意:这几天把一个小项目建好,交给领导,领导说我设计错误,将来会有上百个微服务项目,common如果作为单个的微服务的公共层,未免有点浪费,领导说应该是放所有微服务子项目共有的东西,具体我也不懂,所以在这里误解大家了,抱歉,但是建立父子项目的方法还是这样的,但是微服务项目设计不是这样的,可以参照!!!
创建父项目
(1)下边这张图是父子项目建立的不同之处,父项目建立是建Maven project,即项目。子项目建立的是Module,即模块。如下:
(2)选择Maven project开始建立父项目。如下图,选择create a simple project,原因父项目需要建立的packaging为POM,子项目建立的packaging为jar或者war,勾选此处,在下一步中可以选择packaging:
(3)再次提醒,父项目的packaging选择POM,子项目选择Jar或者war,顺便说一句,一般来说,要创建在tomcat里运行的项目,应该是要创建war,比如本文说的service子项目和web子项目,应该是创建成war,但是有例外是,如果要创建spring boot微服务项目,因为spring boot采用的都是富jar形式,就需要所有的子项目都为jar,这仅仅是个人理解,具体按照自己的需求建立。
(4)如果不小心将父项目的packaging建立成不是POM的,可以打开项目的pom.xml文件,进行修改。如下:
(5)修改完保存后,项目会报错,直接项目右击选择Maven------->update project即可。
创建子项目
(1)子项目的创建必须选择maven module,同时在里边制定父项目就可以了,注意不要忘记,在前边将父项目的packing由Jar改为POM\,具体创建子项目步骤如下:
****
(2)创建完之后就可以看到如下的内容:
(3)同理,将service子项目和web子项目建立完成后,这时候点击父项目里的pom.xml,就会看到如下内容:
(4)这样就完成了父子项目的创建。但是如何进行项目与项目之间的关联,还要进行一些配置。
跨项目访问内容
比如本文中的common子项目为公共项目,其中可以将公用的东西,比如实体类、工具类等存储到该项目,将来,可以在service子项目和web子项目中直接调用即可,如果达到这样的功能,就需要添加依赖标签。以service子项目调用common子项目为例,步骤如下:
(1)测试要求:首先在common子项目中建立一个Person类,然后在service子项目中建立一个TestPerson类,在该类中调用Person类。
****
(2)其实就是要在service子项目中引入common子项目的依赖即可。如下,在service子项目的pom.xml中添加如下内容:
(3)在service子项目中添加完以上一个依赖标签,该标签指向common子项目,这样就相当于将common子项目中的内容获取到了,注意写入以上的内容,前提,必须common子项目中有如下内容,该内容默认是存在的,只要不乱删除,就一直会有的,否则,就算在service子项目中填上上边的依赖,也无法获取到其中的内容。
(4)好了,在service子项目中测试一番吧,如下:
(5)这样就完成了项目之间的调用,将来就把所有的公共内容放到common子项目中,同理web子项目想要引入common子项目也是如此。
(6)除了公用的类,可以公用,也包括jar包,可以在common子项目中导入,这样service子项目中也可以用到该jar包。
父项目只是充当聚合层,不写任何代码,父项目只是负责管理依赖