如何使用Signavio打包Activiti Modeler
1.簡單說明Activiti Modeler
Activiti Modeler是用來設計BPMN2.0規範的可視化設計器,使用開源的Signavio源碼建構打包。
在Activiti 5.6版本之前安裝包裡面自帶Activiti Modeler,之後就需要手動打包了,最近很多人詢問如何打包運作,是以寫此博文詳細說明。
2.下載下傳Signavio
Signavio托管在googlecode上,位址:http://code.google.com/p/signavio-core-components/,可以通過Svn Checkout方式下載下傳源碼:
?
1 | |
3.配置打包任務屬性
Signavio是通過ant建構打包的,在打包之前需要更改一下build.properties檔案的屬性值。
- version:這個版本随便定義,我是按照Activiti的最新版本定義的,例如目前最新的版本号是5.9;
- war:這個屬性定義打包的war檔案的名稱,即:foo.war,我們設定為activiti-modeler;
- configuration:最重要的一個屬性,定義打包的風格,預設支援三種:default, Activiti, jBPM;其實說風格也是授權,因為Activiti Modeler是Signavio捐贈給Activiti的。這裡我們定義為Activiti,對應的配置目錄在signavio-core-components/configuration/Activiti;
- host:這裡顧名思義就是要配置運作時的域名以及端口号,根據自己的實際配置設定;可以定義為https協定。
- fileSystemRootDirectory:重要,屬性的含義是制定儲存workspace工作去的目錄;這個屬性導緻很多人啟動服務失敗,因為制定的目錄不存在導緻Signavio報錯;是以要事先準備好一個目錄用來儲存設計的檔案(流程定義);注意:不要使用反斜杠(\),而是所有的作業系統都使用正斜杠(/)來定義目錄,例如:/home/henryyan/work/workspace/signavio
4.執行打包
支援多種打包、部署方式,也支援多種Web容器(JBoss、Tomcat)。
4.1 all-in-one方式
這個也是最常用的方式,在signavio-core-components目錄執行指令:
ant build-all-in-one-war
執行完指令之後在signavio-core-components/target目錄就出生成activiti-modeler.war,現在就可以把這個war包部署到tomcat或者其他容器中運作了。
4.2 直接部署到Web容器
需要設定屬性:
- dir-tomcat-webapps:此屬性在運作下面的指令的時候會用到,含義為指定打封包件部署的容器web根目錄,例如我的tomcat配置:/home/henryyan/work/tools/apache/tomcat/tomcat-6.0.32-activiti-modeler/webapps
- dir-jboss-webapps:同dir-tomcat-webapps,隻不過容器類型不同而已。
可以通過如下指令直接打包+運作設計器:
ant build-and-deploy-all-in-one-war-to-tomcat
等待任務結束之後在dir-tomcat-】webapps的屬性值對應的目錄中就看到了activiti-modeler.war檔案了,現在你可以啟動tomcat通路了。
4.3 Windows打包報錯
又是煩人的編碼問題,如圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLy9mcyVWLkxWa1JWLzd3bk5Wa31iclxWZk9WbtkGdpZXa0NWYvwlNw8CXyEDMy8CXzVGbpZ2LcVWbuUHdpVmZhtmL3d3dvw1LcpDc0RHaiojIsJye.png)
不過好在有人遇到過,我把解決辦法搬過來整理分享給大家。解決辦法就是設定編碼為UTF-8。
官網的WIKI特别之處了UTF-8 Encoding Configuration。
A lot of users face issues regarding an invalid encoding that may result in corrupted model files.
That is why it is very important that you ensure the usage of UTF-8 encoding in the whole application stack.
用編輯器打開signavio-core-components/ editor/build.xml檔案。
- 找到<target name="com.signavio.editor.js.concat">,緊随其後添加一行配置代碼:<property name="charset" value="utf-8"/>标簽中的<concat destfile='${build}/oryx.debug.js'>修改為<concat destfile='${build}/oryx.debug.js' encoding="${charset}" outputencoding="${charset}">。
- 找到<target name='com.signavio.editor.js.compress代碼處,更改次target内的<java dir="${build}" jar="${root}/lib/yuicompressor-2.4.2.jar" fork="true" failοnerrοr="true" output='${compress.temp}'>;将其中的yuicompressor-2.4.2.jar更改為yuicompressor-2.4.7.jar。
- signavio預設使用yuicompressor-2.4.2版本壓縮javascript和css檔案,為了解決編碼問題我們需要使用最新版本替換2.4.2版本,筆者在撰稿的時候最新的yuicompressor版本為2.4.7,讀者也可以直接下載下傳最新版本。通路http://yuilibrary.com/download/yuicompressor/ 下載下傳第一個版本的壓縮包,解壓提取build/yuicompressor-2.4.7.jar檔案并複制到signavio-core-components/yuicompressor/editor/lib目錄中。再次執行打包指令ant build-all-in-one-war一切正常,截圖證明。