Activiti ¼òÒ׽̳ÌÒ» version5.10
Ò»´î½¨»·¾³
1.1 JDK 6+
activiti ÔËÐÐÔÚ°æ±¾ 6ÒÔÉ쵀 JDKÉÏ¡£×ªµ½ Oracle Java SEÏÂÔØÒ³Ãæ£¬µã»÷°´Å¥¡°ÏÂÔØ
JDK¡±¡£ÍøÒ³ÖÐÒ²Óа²×°ËµÃ÷¡£ÒªºËʵ°²×°ÊÇ·ñ³É¹¦£¬ÔÚÃüÁîÐÐÉÏÔËÐÐ java¨Cversion¡£½«´òÓ¡³ö°²×°µÄ
JDKµÄ°æ±¾¡£
1.2 Ant 1.8.1+
´Ó Ant[http://ant.apache.org/bindownload.cgi]ÏÂÔØÒ³ÃæÏÂÔØ×îÐÂÎȶ¨°æµÄ
Ant¡£½âѹÎļþ£¬È·±£Æä binÎļþ¼ÐÔÚ²Ù×÷ϵͳµÄ path Ï¡£ÔÚÃüÁîÐÐÉÏÔËÐÐ ant¨Cversion
À´¼ì²é AntÊÇ·ñ°²×°³É¹¦¡£³É¹¦½«´òÓ¡°²×°µÄ Ant °æ±¾¡£
1.3 Eclipse 3.7+
´Ó EclipseµÄÏÂÔØÒ³ÃæÏÂÔØ Eclipse Classic(»òEclipse JEE)°æµÄ eclipse¡£½âѹÏÂÔØµÄÎļþ£¬È»ºó¾Í¿ÉÒÔÔËÐÐ
eclipse·¾¶Ï嵀 eclipse ÎļþÁË¡£
ÏÂÔØµØÖ·£ºhttp://www.eclipse.org/downloads/packages/release/indigo/sr2
1.4 Activiti -eclipse designer²å¼þ°²×°
ÔÚ°²×°Activiti -eclipse designer²å¼þǰÏȰ²×°maven²å¼þ£¬m2e(eclipse)²å¼þÔÚInstall
New SoftWare°²×°Ê±»á³öÏÖЩÎÊÌ⣬°´ÒÔϲ½Öè°²×°¼´¿É¡£
1.4.1 ÏȰ²×°GEF²å¼þ
maven²å¼þ°²×°µÄʱºò»áÒÀÀµÕâ¸ö²å¼þ£¬ÔÚEclipse -> help -> Install
New SoftWareÖа²×°£¬update site:http://download.eclipse.org/tools/gef/updates/interim/
1.4.2 °²×°SVN²å¼þ
ÔÚEclipse -> help -> Install New SoftWareÖа²×°£¬update
site:http://subclipse.tigris.org/update_1.6.x
1.4.3°²×°Maven²å¼þ
·½Ê½Ò»£ºÔÚÏß°²×°
ÔÚEclipse -> help -> Install New SoftWareÖа²×°£¬update
site:http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/m2e/1.5.0/N/LATEST/
˳±ãeclipse m2eÖ§³Ösite£ºhttp://www.eclipse.org/m2e/download/
ÈçÔÚÏß°²×°²»³É¹¦£¬±¨[the selected did not contain any resources
that can run on server maven project]´íÎ󣬽¨Òé²ÉÓ÷½Ê½¶þ°²×°¡£
·½Ê½¶þ£º±¾µØ°²×°
ÏÂÔØmavenºÍ eclipse-maven3-plugin²å¼þ£¨eclipse-maven3-pluginΪ±¾ÈËCSDNÉÏ´«£©
Maven site: http://ant.apache.org/bindownload.cgi
eclipse-maven3-plugin site: http://download.csdn.net/detail/yangyi22/5663245
ÔÚeclipseĿ¼Ï½¨Á¢mypluginsĿ¼£¬½«eclipse-maven3-plugin½âѹºóÎļþ¸´ÖƽøÈ¥£¬½¨Á¢linksĿ¼£¬Ð½¨maven.linkÎļþ£¨Ãû×ÖËæÒâÈ¡£©Ìí¼ÓÎı¾£º
path=¡/eclipse/myplugins/maven£¬¼´ÈÃeclipseÆô¶¯Ê±È¥Ñ°ÕÒmypluginsÖеIJå¼þ£¬Èç±¾È˰²×°µÄ·¾¶£ºpath=D:/Java~coding~site
/eclipse[indigo-jee]/eclipse/myplugins/maven
1.4.4 ×îºó°²×°Activiti -eclipse designer
´ò¿ª Help¨¤Install New Software¡£ÔÚÈçÏÂÃæ°åÖУ¬µã»÷Add°´Å¥£¬È»ºóÌîÈëÏÂÁÐ×ֶΣºlName£ºActiviti
BPMN 2.0 designer
l Location£ºhttp://activiti.org/designer/update/

°²×°³É¹¦ºó£¬Ð½¨activitiÏîÄ¿£¬ÊÓͼÈçÏ£º

°²×°m2eclipse²å¼þºó£¬ÖØÆôEclipse£¬ÈçÌáʾ£º
Eclipse is running in a JRE, but a JDK is required
Some Maven plugins may not work when importing projects
or updating source folders.
ÐèÒªÐÞ¸Äeclipse.iniÎļþ£¬ÐÂÔöÒ»ÏîÅäÖÃ
-vmÅäÖÃÏî±ØÐëÔÚ¨CvmargsÅäÖÃÏîǰ£¬ÊÇÒòΪִÐе½-vmargsÅäÖÃÏîÒѾѡÔñÁËÒ»¸öĬÈϵÄJVMÁË¡£
ËùÒÔÔÚ¨CvmargsÇ°Ãæ¼ÓÉÏÕâÒ»¾ä£º
-vm
C:/Program Files/Java/jdk1.6.0_20/bin/javaw.exe
¶þ¿ªÊ¼activiti 5.10µÄµÚÒ»¸ödemo
2.1 ½¨Á¢activiti-demo¹¤³Ì£¬Ñ¡ÔñActiviti Project

´´½¨³É¹¦ºóµÄÏîÄ¿£º

¸øactiviti-demoÏîÄ¿Ìí¼ÓactivitiÒÀÀµ°ü£¬ÏîÄ¿ÓÒ¼üBuild Path->Configure
Build Path->libraries -> Add External JarsÑ¡ÖС\activiti-5.10\setup\files\dependencies\libsÏÂËùÓаüÌí¼Ó¼´¿É¡£
2.2 ½«activiti-demo¹¤³ÌµÄÊý¾Ý¿âÕûºÏΪMySQL
½«¡\activiti-5.10\setup\build\activiti-cfgĿ¼ÏµÄactiviti.cfg.xmlÅäÖÃÎļþ¸´ÖƵ½ÏîÄ¿src\main\resourcesĿ¼Ï£¬ÐÞ¸ÄÊý¾Ý¿âÅäÖÃÈçÏ£º
<!-- Database configurations -->
<propertyname="jdbcUrl"
value="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>
<propertyname="jdbcDriver"
value="com.mysql.jdbc.Driver"/>
<propertyname="jdbcUsername"value="root"/>
<propertyname="jdbcPassword"value="root"/>
<!-- Database configurations -->
<propertyname="databaseSchemaUpdate"value="true"/>
<!-- job executor configurations -->
<propertyname="jobExecutorActivate"value="false"/> |
2.3 Éè¼Æactiviti-demo¹¤³ÌµÄÁ÷³Ì
ÔÚ¸ÃÏîÄ¿µÄsrc/main/resource/diagramsÏÂÓÒ¼ü´´½¨Activiti
diagram£¬ÎļþÃûΪ£ºDemoProcess.bpmn¡£


´Ëʱ½øÈëActiviti Diagram Editor£¬ÔÚ¿Õ°×´¦µãһϣ¬Ï±ßÊôÐÔÀ¸ÖÐÉèÖÃidºÍname£¬id¾ÍÊÇÕâ¸öÁ÷³ÌµÄkey£¬ºó±ßÆô¶¯Á÷³ÌµÄʱºòʹÓõ½¡£

×¢Ò⣺Activiti 5.8Éý¼¶µ½5.9ÒÔºó£¬xxx.bpmn20.xmlºÍxxx.pngÒѲ»Ä¬ÈÏÉú³É£¬½ö½öÊÇÉú³Éxxx.bpmnÎļþ£¬
xxx.bpmnÖе͍ÒåÄÚÈݾÍÈçxxx.bpmn20.xmlÒ»Ñù¡£
ÁíÍ⣬¿ì½Ý²Ëµ¥£º¡°Create deployment artifacts¡±ºÍ¡°Import BPMN20
file¡±£¬ÔÚ5.9ÒÔºóÈ¥µôÁË¡£
ÈçÐèÉè¼ÆÍê³ÉÁ÷³Ìºó×Ô¶¯Éú³ÉÒ»¸öpngͼƬ°´ÈçÏ´¦Àí
l ±£´æÎÞ·¨Éú´æpngͼƬ°´ÒÔÏ´¦Àí
Window ¨C> Preferences -> Activiti
->Save¹´Ñ¡¼´¿É

»òÕßÊÖ¶¯²Ù×÷£ºÓÃActiviti Designer´ò¿ªxxx.bpmnÎļþ£¬È»ºóÓÒ¼üÑ¡ÔñExport
Diagram...£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÉèÖÃͼƬµÄ²ÎÊý¼´¿É£¬Ò»°ãʹÓÃĬÈϾͿÉÒÔÁË¡£
ÔÚÉè¼Æ±à¼Æ÷Öб£´æDemoProcess.bpmnºóµÄÏîÄ¿ÊÓͼÈçÏ£º

²âÊÔÀà´úÂë DemoProcessTest.java
package main.java; import java.io.FileInputStream; import java.util.List; import org.activiti.engine.HistoryService; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; /** * Activiti 5.10 demo * @author BruceQin * */ public class DemoProcessTest { // diagramsʵ¼Ê·¾¶ private static String realPath = "D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" + "\\activiti-demo\\src\\main\\resources\\diagrams"; public static void main(String[] args) throws Exception { // ´´½¨ ActivitiÁ÷³ÌÒýÇæ ProcessEngine processEngine = ProcessEngineConfiguration .createProcessEngineConfigurationFromResource("activiti.cfg.xml") .buildProcessEngine(); // È¡µÃ Activiti ·þÎñ RepositoryService repositoryService = processEngine.getRepositoryService(); RuntimeService runtimeService = processEngine.getRuntimeService(); // ²¿ÊðÁ÷³Ì¶¨Òå repositoryService .createDeployment() .addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn")) .addInputStream("DemoProcess.png",
new FileInputStream(realPath + <a href="file://\\DemoProcess.png">\\DemoProcess.png</a>)) .deploy(); // Æô¶¯Á÷³ÌʵÀý ProcessInstance instance = processEngine .getRuntimeService().startProcessInstanceByKey("DemoProcess"); String procId = instance.getId(); System.out.println("procId:"+ procId); // »ñµÃµÚÒ»¸öÈÎÎñ TaskService taskService = processEngine.getTaskService(); List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list(); for (Task task : tasks) { System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName()); // ÈÏÁìÈÎÎñ taskService.claim(task.getId(), "testUser"); } // ²é¿´testUser ÏÖÔÚÊÇ·ñÄܹ»»ñÈ¡µ½¸ÃÈÎÎñ tasks = taskService.createTaskQuery().taskAssignee("testUser").list(); for (Task task : tasks) { System.out.println("Task for testUser: " + task.getName()); // Íê³ÉÈÎÎñ taskService.complete(task.getId()); } System.out.println("Number of tasks for testUser: " + taskService.createTaskQuery().taskAssignee("testUser").count()); // »ñÈ¡²¢ÈÏÁìµÚ¶þ¸öÈÎÎñ tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list(); for (Task task : tasks) { System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName()); taskService.claim(task.getId(), "testUser"); } //Íê³ÉµÚ¶þ¸öÈÎÎñ½áÊø½áÊøÁ÷³Ì for (Task task : tasks) { taskService.complete(task.getId()); } // ºËʵÁ÷³ÌÊÇ·ñ½áÊø HistoryService historyService = processEngine.getHistoryService(); HistoricProcessInstance historicProcessInstance =
historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult(); System.out.println("Process instance end time: " + historicProcessInstance.getEndTime()); } } |
Ò»´î½¨»·¾³
1.1 JDK 6+
1.2 Ant 1.8.1+
1.3 Eclipse 3.7+
1.4 Activiti -eclipse designer²å¼þ°²×°
1.4.1 ÏȰ²×°GEF²å¼þ
1.4.2 °²×°SVN²å¼þ
1.4.3°²×°Maven²å¼þ
1.4.4 ×îºó°²×°Activiti -eclipse designer
¶þ¿ªÊ¼activiti 5.12.1µÄµÚÒ»¸ödemo
2.1 ½¨Á¢activiti-demo¹¤³Ì£¬Ñ¡ÔñActiviti Project
2.2 ½«activiti-demo¹¤³ÌµÄÊý¾Ý¿âÕûºÏΪMySQL
2.3 Éè¼Æactiviti-demo¹¤³ÌµÄÁ÷³Ì
ÒÔÉÏÏêϸÃèÊö²ÎÕÕActiviti ¼òÒ׽̳ÌÒ» version5.10£¨http://blog.csdn.net/yangyi22/article/details/9225849£©
²âÊÔÀà´úÂë DemoProcessTest.java
package main.java; import java.io.FileInputStream; import java.util.List; import org.activiti.engine.HistoryService; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; public class DemoProcessTest { // diagramsʵ¼Ê·¾¶ private static String realPath = "D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" + "\\activiti-512demo\\src\\main\\resources\\diagrams"; public static void main(String[] args) throws Exception { // ´´½¨ ActivitiÁ÷³ÌÒýÇæ //·½Ê½Ò» ×Ô¶¯Ñ°ÕÒactiviti.cfg.xml ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //·½Ê½¶þ Ö¸¶¨¼ÓÔØactiviti.cfg.xml // ProcessEngine processEngine = ProcessEngineConfiguration // .createProcessEngineConfigurationFromResource("activiti.cfg.xml") // .buildProcessEngine(); // È¡µÃ Activiti ·þÎñ RepositoryService repositoryService = processEngine.getRepositoryService(); RuntimeService runtimeService = processEngine.getRuntimeService(); // ²¿ÊðÁ÷³Ì¶¨Òå repositoryService .createDeployment() .addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn")) .addInputStream("DemoProcess.png", new FileInputStream(realPath + "\\DemoProcess.png")) .deploy(); // Æô¶¯Á÷³ÌʵÀý ProcessInstance instance = processEngine .getRuntimeService().startProcessInstanceByKey("DemoProcess"); String procId = instance.getId(); System.out.println("procId:"+ procId); // »ñµÃµÚÒ»¸öÈÎÎñ TaskService taskService = processEngine.getTaskService(); List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list(); for (Task task : tasks) { System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName()); // ÈÏÁìÈÎÎñ taskService.claim(task.getId(), "testUser"); } // ²é¿´testUser ÏÖÔÚÊÇ·ñÄܹ»»ñÈ¡µ½¸ÃÈÎÎñ tasks = taskService.createTaskQuery().taskAssignee("testUser").list(); for (Task task : tasks) { System.out.println("Task for testUser: " + task.getName()); // Íê³ÉÈÎÎñ taskService.complete(task.getId()); } System.out.println("Number of tasks for testUser: " + taskService.createTaskQuery().taskAssignee("testUser").count()); // »ñÈ¡²¢ÈÏÁìµÚ¶þ¸öÈÎÎñ tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list(); for (Task task : tasks) { System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName()); taskService.claim(task.getId(), "testUser"); } //Íê³ÉµÚ¶þ¸öÈÎÎñ½áÊø½áÊøÁ÷³Ì for (Task task : tasks) { taskService.complete(task.getId()); } // ºËʵÁ÷³ÌÊÇ·ñ½áÊø HistoryService historyService = processEngine.getHistoryService(); HistoricProcessInstance historicProcessInstance =
historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult(); System.out.println("Process instance end time: " + historicProcessInstance.getEndTime()); } } |
ÒÀÀµjar°ü˵Ã÷
Activiti5.10ÒÔºóµÄ°æ±¾ÒѾȥµôµÚÈý·½µÄjar°ü£¬´Ó¹ÙÍøÏÂÔØµÄActiviti5.12.1µÄÒÀÀµ°ü½ö½ö°üº¬activitiÏà¹ØµÄjar£¬Ä¿Â¼libsϵÄjar°üÈçÏ£º



ÔËÐвâÊÔ´úÂ룬»á·¢ÏÖÉÙÁ˺ܶàÒÀÀµ°ü£¬ÎҵĴ¦ÀíµÄ·½·¨ÊÇÖ±½Ó´Ó5.10°æ±¾µ¼ÈëȱÉÙµÄjar°ü£¬µ¼Èëºó²âÊÔ´úÂëͨ¹ý¡£
jar°ü£º


|