[TOC]
## 配置開始
首先我們進入Jenkins頁面中,如下
我們構建一個自由風格的項目,這也是相中用的比較多的

<br>
<br>
## 源碼管理

這里默認是不使用任何原碼管理,但是可以使用git或svn來進行原碼管理,這里我使用git,操作如下

首先將github上面的代碼路徑copy下來然后放入,Repositories URL
Repositories URL:存放項目路徑
Credentials:如圖下,按照自己的實際情況填寫
選擇Add按鈕,添加github賬戶密碼等信息

分支默認全在master分支下
<br>
<br>
## 觸發器說明

build whenever a snapshot dependency is built,當job依賴的快照版本被build時,執行本job。
<br>
<br>
### 1:觸發遠程構建 (例如,使用腳本):
這里使用于自動化構建,拼接url后寫入代碼中可以實現在腳本或者工具執行構建

<br>
<br>
### 2:build after other projects are built,
當本job依賴的job被build時,執行本job

* Trigger only if build is stable:只有在構建穩定時才觸發
* Trigger even if the build is unstable:即使構建不穩定,也要觸發
* Trigger even if the build fails:即使構建失敗,也要觸發
<br>
<br>
### 3:Build periodically:
定時執行構建任務,不管遠程代碼分支上的代碼是否發生變化,都執行一次構建。
日程表的參數
第一個參數代表的是分鐘 minute,取值 0~59;
第二個參數代表的是小時 hour,取值 0~23;
第三個參數代表的是天 day,取值 1~31;
第四個參數代表的是月 month,取值 1~12;
最后一個參數代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
例如:H 2 \* \* \* ? ? ?表示每天兩點定時執行構建。

<br>
<br>
### 4:Build when a change is pushed to GitHub:
這個是github項目的觸發規則
<br>
<br>
### 5:Poll SCM:
設置定時檢查代碼倉庫是否有變更,有變更則構建
例如:H/5 \* \* \* \* ? ? 表示每隔五分鐘去檢查一遍代碼倉庫,如果代碼發生變化則執行構建,否則不構建

### 6:定時構建語法
~~~
* * * * *
~~~
第一個\*表示分鐘,取值0~59
第二個\*表示小時,取值0~23
第三個\*表示一個月的第幾天,取值1~31
第四個\*表示第幾月,取值1~12
第五個\*表示一周中的第幾天,取值0~7,其中0和7代表的都是周日
每隔5分鐘構建一次
~~~
H/5 * * * *
~~~
每兩小時構建一次
~~~
H H/2 * * *
~~~
每天中午下班前定時構建一次
~~~
0 12 * * *
~~~
每天下午下班前定時構建一次
~~~
0 18 * * *
~~~
每15分鐘構建一次:H/15 \* \* \* \* 或\*/5 \* \* \* \*
每天8點構建一次:0 8 \* \* \*
每天8點~17點,兩小時構建一次:0 8-17/2 \* \* \*
周一到周五,8點~17點,兩小時構建一次:0 8-17/2 \* \* 1-5
每月1號、15號各構建一次,除12月:H H 1,15 1-11 \*
\*/5 \* \* \* \* (每5分鐘檢查一次源碼變化)
0 2 \* \* \* (每天2:00 必須build一次源碼)
<br>
<br>
## 構建環境
構建環境就是構建之前的一些準備工作,如指定構建工具(在這里我使用ant)。

**With Ant**:選擇這個工具,并指定ant版本和jdk版本。這兩個工具的版本我都事先在服務器上安裝,并且在jenkins全局工具中配置好了。
<br>
<br>
## 構建

可以選擇的項很多。這里就介紹"Invoke Ant" 和"Execute shell".
**Eexcute shell**: 執行shell命令,該工具是針對linux環境的,windows環境也有對應的工? ? ? ? ? ? 具"Execute Windows batch command"。 在構建之前,可能我們需要執行一些命令,比如壓縮包的解壓之類的。為了演示,我就簡單的執行? "echo $RANDOM" 這樣的linux shell下生產隨機數命令。
這里我選擇使用Eecute shell
<br>
<br>
## **構建后操作**

構建后操作,就是對project構建完成后的一些后續操作,比如生成相應的代碼測試報告。

**Publish Clover PHP Coverage Report**:發布代碼覆蓋率xml格式的文件報告。路徑會在"build.xml"文件中定義
**Publish HTML reports**:發布代碼覆蓋率的HTML報告。??
**Report Crap:** 發布crap報告
**E-mail Notification:** 郵件通知,構建完成后發郵件到指定的郵箱。
**以上配置完成后,點擊保存。**