## Activiti6 學習筆記六:官方DEMO之activiti-app源碼部署
### 一、章節目標
在《Activiti 學習筆記三:官方DEMO之activiti-app》一章中其實我們已經介紹了 activiti-app 的功能,為何還會有這一章節?
其實試用了 activiti-app 之后,我們發現這個demo基本已經滿足了我們對流程引擎的要求:有流程定義、有表單定義、能跑APP,能跑任務,這不就是我們要的功能?既然有了怎么辦?改呀!是的,所以這節就是講解如果用源碼來跑這個項目,后面的如何改造,就要靠各位的功力了。
> 注:如果各位還是想自行實現,那么可以跳過此章節。
* * * * *
### 二、技能要求
1、git - 這個很簡單,就是 git clone 、git branch 和 git checkout 而已
2、maven - 老外的項目現在很多都使用maven管理
3、tomcat - activiti-app 它是個 web 項目啦
4、linux - win環境下下載的只有github源碼的主目錄,這里需要用linux下的git配合
> 注:博主是個半調子java,所以研究源碼的時候的,花了不少功夫來折騰相關的東西,如果你是新手司機,建議還是老老實實學半年java再來。
* * * * *
### 三、部署過程
#### 1、源碼下載
首先去 https://github.com/Activiti/Activiti 下載源碼,不過要注意的是源碼的主干是最新的版本,版本號是7,而我們用的是 6,所以下載的時候要找到 6 版本分支的代碼。
這里建議用linux的命令行來下載。
1)git clone https://github.com/Activiti/Activiti
2)進入下載好的 Activiti 文件夾,執行 git branch -a 查看所有的分支,這里的 6.x 就是我們要找的版本

3)執行 git checkout/origin/6.x 切換代碼,然后再執行 ls 可以看到 6 版本分支的代碼了。

4)接著我們進入目錄下的 modules/activiti-ui,其中 activiti-app、activiti-app-conf、activiti-app-logic和activiti-app-rest就是我們這次部署的主角。

#### 2、項目配置
使用Myeclipse分別打開這4個項目,然后將項目轉換為maven項目。

分別修改POM里面的設置,將依賴的 activiti-ui-root 版本全部改成 6.0.0。

注:依賴里面使用的是 6.0.1版本,但是由于官方沒有上傳這個版本到 maven 的主庫,所以一定會更新不下來!所以這里我們還是要用回 6.0.0的版本。
配置完成后,接下來等待 maven 更新依賴就可以了。
#### 3、啟動項目
由于 activiti-ui 是一個web項目,所以我們直接使用 tomcat 來啟動項目,然后 tomcat 就會在其 webapps 目錄下生成一個可運行的項目了。

但是這里目前有一個坑,就是生成項目的時候,不會自動生成 apache-tomcat-7.0.82\webapps\activiti-app\WEB-INF\classes\META-INF\activiti-app\activiti-app.properties 這個配置文件,所以我們復制一下 activiti-app 下的 activiti-app.properties 文件到上面的目錄中。


OK,現在我們再次運行項目,就可以跑起來了。


啟動完成后,瀏覽器直接打開 http://localhost:8080/activiti-app 路徑即可。
#### 4、改造項目
前面的文檔說到,不同的子項目劃分不同的邏輯,但是我們在修改的時候,修改 activiti-app、activiti-app-conf、activiti-app-logic和activiti-app-rest 中的任何一個都可以直接生效。
例如我修改了 activiti-app-conf,然后eclipse就會直接重新加載,在console中可以看到相關內容。


* * * * *
### 四、章節小結
本章只是講解了如何部署這個項目,后續會有章節來解析源碼。