我想使用 Grails Activiti 插件构建自己的工作流系统。执行此操作的程序是什么?谁能帮我吗?
我已经在我的项目中安装了 Grails Activiti 插件。我还在我的项目中下载并安装了假期请求示例应用程序,并查看了它是如何工作的。
现在,我认为没有分步说明可以指导您完成 Grails Activiti 插件的实现。我在一条类似的船上(一个使用 Grails 的开发商店,想要实现一个工作流引擎),到目前为止,Activiti 插件并没有真正有用。那些使用它的人实际上似乎并没有利用它在 GORM 和 Activiti 之间提供的集成。
概括地说,这里是我推荐的在 Grails 中使用 Activiti 的步骤;您可能会接受或离开 Activiti 插件。
一般来说,我的经验法则是让 Activiti 处理流程,而 Grails 处理其他所有事情(UI、数据持久性和操作、验证等)。
我推荐这种方法,这样您仍然可以使用 Grails 通过控制器和 GSP 管理所有用户界面,并通过域对象和服务管理大部分对象模型。Activiti 团队正在构建的 UI 没有任何问题,但它基于Vaadin,这是它自己的 Java/UI 框架,具有自己的特点和理念。我确信超级开发人员可以将它们无缝地结合起来,而且可能已经有了,但除非他/她下山教我,否则我将不得不限制我将尝试的工具的数量立即掌握。:)
在您的 BuildConfig.groovy 文件中,在您的依赖项和存储库闭包中包含以下内容:
repositories {
inherits true // Whether to inherit repository definitions from plugins
mavenRepo "https://maven.alfresco.com/nexus/content/groups/public/"
//any other repositories you need go here, including grailsCentral(), etc.
}
dependencies {
compile("org.activiti:activiti-engine:5.13"){
excludes "spring-beans"
}
}
您不必排除 spring-context 依赖项,但 Grails 2.3.1 确实使用了比 Activiti 5.13 更高版本的 Spring。在我试过的 2/3 机器上,没问题,Grails 只是使用 Spring 的较新版本,忽略了 Activiti 所需的旧版本。然而,在一台机器上,这种差异导致了一个难以追踪的棘手异常。