天天看點

activiti學習資料(Signavio打包Activiti Modeler) 如何使用Signavio打包Activiti Modeler

如何使用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

svn

checkout http:

//signavio-core-components

.googlecode.com

/svn/trunk/

signavio-core-components

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打包報錯

又是煩人的編碼問題,如圖:

activiti學習資料(Signavio打包Activiti Modeler) 如何使用Signavio打包Activiti Modeler

不過好在有人遇到過,我把解決辦法搬過來整理分享給大家。解決辦法就是設定編碼為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檔案。

  1. 找到<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}">。
  2. 找到<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。
  3. 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一切正常,截圖證明。
activiti學習資料(Signavio打包Activiti Modeler) 如何使用Signavio打包Activiti Modeler