我想使用Grails Activiti插件构建自己的工作流系统。这样做的程序是什么?任何人都可以帮助我吗?
我已经提到了这个documentation和example。
我在我的项目中安装了Grails Activiti插件。我还在我的项目中下载并安装了休假请求示例应用程序,并了解它是如何工作的。
答案 0 :(得分:3)
目前,我还没有考虑一步一步的指示来指导您实施Grails Activiti插件。我是一个类似的船(一个使用Grails的开发商店,希望实现一个工作流引擎),到目前为止,Activiti插件并没有真正有用。那些使用它的人don't actually seem to be leveraging the integration it provides between GORM and Activiti。
从广义上讲,以下是我建议在Grails中使用Activiti的步骤;你可以拿走或离开Activiti插件。
通常,我的经验法则是让Activiti处理进程,Grails处理其他所有事情(UI,数据持久性和操作,验证等)。
我推荐这种方法,以便您仍然可以使用Grails通过控制器和GSP管理所有用户界面,以及通过Domain对象和服务管理大部分对象模型。 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确实使用了Spring的更高版本而不是Activiti 5.13。在2/3台机器上我已经尝试过了,没关系,Grails只使用了更高版本的Spring,忽略了Activiti所需的旧版本。但是,on one machine, the difference caused a persnickety exception that was difficult to track down。