SOA面向服务架构打包部署

今天在公司打包部署SOA架构的项目。可是一直出现打包错误问题。如今记录下来css

一、项目结构错误java

原先的项目结构是:web

parent Maven项目中聚合了三个maven子模块spring

原先:parenttomcat

                --commonspringboot

                --manager架构

                            --pojomaven

                            --interfacespring-boot

                            --dao工具

                            --service     

                manager-web

其中common maven模块中是公共工具类。manager是一个聚合Maven.其中包括pojo 模块、interface模块、dao模块、service模块。manager-web 模块 是controller和静态文件(包括HTML、js、css等)

并且Maven打包插件是在父级中,即parent中。使用的是

spring-boot-maven-plugin:是须要有main方法才能够进行打包。不然就会报错。异常信息就是缺乏main方法

由于spring-boot-maven-plugin是在parent中。因此对于继承该项目的子项目。相对应的也使用了该插件。可是对于common子模块。和manager模块中的pojo、interface、dao都没有定义打包方式。因此在打包这些模块的时候就会报错

因此又对项目进行改造:

将common模块、manager模块、manager-web模块从parent中抽离出来。使这三个和parent同级。也就是parent不对这三个进行聚合。parent只对jar版本进行管理。

抽离出来后的项目结构

parent中不在包含子模块。再定义打包方式。对于没有main方法的模块进行正常的maven打包。

使用tomcat7-maven-plugin进行打包

存在main方法的使用

对于manager-web项目有一点须要注意

由于项目不是先后台分离。因此web中包含静态文件。须要使用maven-resources-plugin进行资源文件拷贝。这样在web模块的包时。静态资源文件也会打包进去。不然会出现Error resolving template [index], template might not exist的异常

最后再说一下打包顺序:

一、对parent进行打包使用Run AS -->Maven install

二、对common模块进行打包使用Run AS -->Maven install

三、对manager模块进行打包使用Run AS -->Maven install

四、对manager-web模块进行打包使用Run AS -->Maven install

由于我使用的是springboot 因此pom文件中定义的都是jar。

打完jar包后。只须要将service和web两个jar包拉出来启动就行了。使用java -jar  jar名称或者建立一个.bat文件

java -jar jiyunbang-manager-web-0.0.1-SNAPSHOT.jar
pause

使用技术:springboot、dubbo、zookeeper、shiro、druid、thymeleaf

相关文章
相关标签/搜索