tk.mybatis与Activiti共存问题解决

由于tk.mybatis依赖了persistence-api,会让Activiti装配JpaProcessEngineAutoConfiguration,因为其@conditonalOnclass(name = “javax.persistence.EntityManagerFactory”)。

但实际没有使用JPA,导致启动报错。如果排除persistence-api,又会导致tk.mybatis报错。

参考了一番其它的人做法,无论是各种排除还是添加依赖都无效。

最终自己的解决方案是:

首先排除activiti jpa的自动装配:

1
@SpringBootApplication(exclude={JpaProcessEngineAutoConfiguration.class})。

然后找到activiti中的DataSourceProcessEngineAutoConfiguration.class 复制出源码,在自己的项目中添加一个同名文件(不同名也行)。然后粘贴内容到新建的文件中。最后删掉:

1
@ConditionalOnMissionClass(name = "javax.persistence.EntityManagerFactory")

Ok,搞定!