前言
最近断断续续整合SpringBoot2.0和Activiti6.0终于到了尾声,结果最后遇到了两个问题半天解决不了,昨天圣诞节晚上弄了很久,记录一下。
问题
第一个问题是我的maven项目用mvn命令启动,刚开始使用mvn clean spring-boot:run启动一点问题都没有,后来想测试一下用内嵌的tomcat启动mvn clean tomcat7:run,编译正常通过BUILD SUCCESS,但是项目不运行。。。很郁闷。
然后百度了很久,尝试了各种方式终于实出来了。需要在tomcat的maven插件中增加
因为tomcat启动默认会去找打包好的war包来启动,而我的项目还没有打成war包,所以添加
1 | <plugin> |
第二个问题是liquibase引起的一系列问题。因为我的项目是springboot的,然后呢要使用activiti需要生成28张activiti这个框架要用到的表,我就在application.yml文件里面配置了generate-ddl: true用于项目启动的时候自动生成表,同时呢因为项目的UI模块使用的activiti6.0源码里面的子模块activiti-ui修改而成的依赖包,这个UI模块自己也会生成几张表并且是用到了liquibase的。
我就在application.yml文件里面开启了liquibase相关配置并关闭了自动生成表的配置。
1 | jpa: |
删除之前activiti-ui模块生成的几张表,重新启动项目。这个时候可能会报错,我当时忘截图了可以大致说一下。liquibase的change-log文件里面会有建表语句,其中像ACT_WO_RELATED_CONTENT等几张表的某些字段的类型被设置为timestamp(6),然后在建表的时候就会报错。
我把建表语句直接拿到navicat执行也是报错,指向了类型为timestamp(6)的字段,于是我把后面的精度6去掉,就成功了。然后查询资料得知,mysql版本 < 5.6,不支持毫秒精度设置。。。呵呵。
好,问题基本解决,说到问题,我就想起了西游记中师徒四人遇到的种种困难,明年年初,中美合拍的西游记即将正式开机,我继续扮演美猴王孙悟空,我会用美猴王艺术形象努力创造一个正能量的形象,文体两开花,弘扬中华文化,希望大家多多关注。