Linux下搭建jenkins+svn+http+maven自動化部署javascript
服務器設置:php
卸載redhat的yum,安裝centos的yum,配置第三方yumcss
1.刪除redhat原有的rpm -qa |grep yum |xargs rpm -e yum --nodepshtml
2.下載yum安裝文件,若是下載時找不到文件,http://mirrors.163.com/centos/6/os/x86_64/html5
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noarch.rpmjava
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpmnode
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.26-11.el6.noarch.rpmpython
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpmmysql
3.進行安裝yumjquery
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm --nodeps
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm --nodeps
rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm --nodeps
rpm -ivh yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm --nodeps
4.下載第三方yum源,這裏是網易wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
下載到/etc/yum.repos.d/下
5.注意事項:
(1)若是你的baseurl不能訪問則會出現
(2)http://mirrors.163.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - 「The requested URL returned error: 404 Not Found」 說明baseurl有問題。將下載後的repo文件中所baseurl=http://mirrors.163.com/centos/releasever/os/basearch/中的全部$releasever改爲6
(注意:這裏改爲「6」,是指redhat版本號是6.0的)
(3)機器要能聯網,ping www.baidu.com試下
(4)執行命令 yum clean all
yum install httpd 安裝成功則證實yum源成功
(1)下載erel源看成yum源來使用
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum makecache
yum clean all
(2)下載lrzsz軟件包
Wget ftp://195.220.108.108/linux/centos/5.11/os/x86_64/CentOS/lrzsz-0.12.20-22.1.x86_64.rpm
將要用到的軟件包用「rz」傳輸到服務器上
1.搭建svn+http
Svn分爲兩種方式訪問(1)藉助於apache
(2)svn獨立服務器
這裏,咱們藉助於apache來實現svn訪問
1.首先,咱們來安裝svn apache軟件包
yum install httpd httpd-devel subversion mod_dav_svn
***mod_dav_svn**//Subversion與Apache之間的接口(經過它,Apache就能夠訪問版本庫,可讓客戶端也使用HTTP的擴展協議 WebDAV/DeltaV進行訪問)
驗證 svn模塊(mod_dav_svn)是否正確安裝
ls /etc/httpd/modules | grep svn
系統提示:
mod_authz_svn.so
mod_dav_svn.so
驗證安裝:
svn --version
顯示以下代表正確安裝
svn,版本 1.4.2(r22196)
編譯於 Aug 10 2009,18:00:04
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet(http://www.Collab.Net/).
2.建立SVN庫和項目
mkdir /home/svn /建立svn庫
svnadmin create /home/svn/project //建立svn項目
3.添加組及組員權限
groupadd svn //建立一個叫subversion的組爲擁有倉庫所在的目錄
usermod -G svn -a apache //將本身和Apache 用戶加入組成員中
查看:more /etc/group | grep svn
系統提示:svn:x:500:apache
4.修改項目權限
chgrp -R svn /home/svn/project
chmod -R 777 /home/svn/project
這裏根據本身的安全需求配置相應的權限,因我這裏是測試環境,因此給的是777權限
5.配置httpd
vim /etc/httpd/conf/httpd.cof
查看有沒有LoadModuledav_svn_module modules/mod_dav_svn.so這一行,若是沒有就添加上爲了使客戶端可以經過Apache來訪問SVN檔案庫,Apache須要加載 mod_dav_svn模塊。若是Apache是按照與預設目 錄安裝的,mod_dav_svn 模塊應該會安裝在 Apache 安裝位置 (默認路徑是 /etc/httpd/) 的 modules 子目錄內。同時在Apache的配置文件httpd.conf(默認路徑爲etc/httpd/conf/)中已經使用 LoadModule指令加載了該模塊(若是沒有,手動添加)注意這個指令必須出如今其它的Subversion 相關指令以前。還要加載mod_authz_svn.so模塊
例如:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
通常來時http都已經正常加載了這兩個模塊
啓動apache
/etc/init.d/httpd start
配置防火牆
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /*容許全部IP訪問80端口*/
iptables-save > /etc/sysconfig/iptables /*保存配置或者使用命令 service iptables save */
打開瀏覽器查看是否可以訪問到apache的頁面(注意:若是開了防火牆必定要開放80端口)
6.配置SVN
編輯subversion.conf配置文件
svnserve.conf 文件, 該文件配置項分爲如下5項:
anon-access: 控制非鑑權用戶訪問版本庫的權限。
auth-access: 控制鑑權用戶訪問版本庫的權限。
password-db: 指定用戶名口令文件名。
authz-db:指定權限配置文件名,經過該文件能夠實現以路徑爲基礎的訪問控制。
realm:指定版本庫的認證域,即在登陸時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件
vim /etc/httpd/conf.d/subversion.conf
按如下代碼更改(慄紅爲修改的代碼):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNPath /home/svn/projcet ---指定SVN路徑
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for passwordprotection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/projcet/conf/passwd ---svn用戶路徑
Require valid-user
# </LimitExcept>
</Location>
第 七步:創建用戶
#cd /home/svn/projcet/conf/ ---進入到svn目錄
htpasswd -c passwd username ---建立svn用戶密碼
Apache htpasswd參數說明
-c 建立一個加密文件
-n 不更新加密文件
-p 不對密碼進行加密,即明文密碼
-D 刪除指定用戶
-b 命令行中一併輸入用戶名與密碼而不是根據提示輸入密碼
注意:藉助於apache服務的SVN若是要建立多個用戶與密碼的話,具體操做以下
htpasswd passwd username --建立用戶名
密碼直接在authz里加入你所添加用戶的權限便可
Vim /home/svn/projcet/conf/authz
test = rw
經過http訪問的帳號是Apache http驗證的。
經過svn://訪問的帳號是svn倉庫conf目錄下passwd指定的。
兩個是獨立的認證方式。
重啓apache
經過web頁面訪問,彈出用戶登陸驗證,訪問成功 (注意開放防火牆的3690端口)
客戶端鏈接SVN服務端時報錯
(1)[Thu Mar 30 09:41:42 2017] [error] [client 172.19.63.36] (13)Permission denied: Could not open password file: /home/svn/project/conf/authz
[Thu Mar 30 09:41:42 2017] [error] [client 172.19.63.36] access to /svn failed, reason: verification of user id 'admin' not configured
解決方法以下:
關掉selinux,不過關閉以後影響服務器安全性
(2)[error] [client 172.19.63.36] Access denied: 'admin' GET svn:/
解決方法:這裏主要是svn下的authz問題
vim /home/svn/project/conf/authz
[groups]
admin = admin
[/]
*=r
@admin=rw
[test:/]
* =rw
@admin=rw
接下來輸入http://ip地址/svn就能夠訪問svn服務端了
Linux下搭建jenkins
1.Jenkins 下載
Jenkins 下載網址: Download Jenkins
Jenkins 最新版本: jenkins_1.514_all.deb(Ubuntu/Debian), 或 jenkins.war(war包)
2.jenkins安裝
(1)jenkins安裝前,先安裝tomcat
軟件:apache-tomcat-7.0.29.tar.gz
下載地址:http://tomcat.apache.org/
系統環境:redhat
[解壓jdk]
安裝jdk以前先查看
[root@localhost etc]# rpm -qa | grep java
若是有javaopenjdk的安裝包那麼卸載掉
解壓jdk包
tar xf jdk-7u65-linux-x64.tar.gz -C /usr/java/
配置環境變量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_65
export PATH=$JAVA_HOME/bin:$PATH
Export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
執行source profile(在/etc/文件夾下)快速生效
測試
輸入java測試
輸入java -version測試
[root@localhost etc]# javac -version
javac 1.7.0_65
[root@localhost etc]# java -version
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
tomcat安裝步驟:
1、下載 Tomcat
下載 apache-tomcat-7.0.29.tar.gz(官方網址)
2、解壓 Tomcat
解壓 apache-tomcat-7.0.29.tar.gz
tar -zxvf apache-tomcat-7.0.29.tar.gz -C /usr/java/
安裝,下載jenkins.war
mv jenkins.war /usr/java/apache-tomcat-7.0.54/webapps/
cd /usr/java/apache-tomcat-7.0.54/bin
./startup.sh ---啓動tomcat
tail -f /usr/java/apache-tomcat-7.0.54/logs/catalina.out ---查看日誌
netstat -anpt | grep :8080
成功啓動後,咱們就能夠經過http://ip地址:端口號/jenkins訪問
解決方法:在linux虛擬機中
[root@localhost ~]# cd /var/lib/jenkins/secrets/
[root@localhost secrets]# cat initialAdminPassword
afbe3f8f7d39487f92b02df4df6ef2e6
將initialAdminPassword 中的密碼複製粘貼到administrator password裏
按continue
點擊「install suggested plugins」
等待下載
會出現一個填寫
用戶名 test
密碼test
完成!!!
出現上圖界面,表示安裝成功!
Maven的下載地址:http://maven.apache.org/download.cgi
這裏以最新的3.2.3版本爲例進行安裝,在這以前須要確保機器上已經安裝了JDK。
首先下載Maven並解壓,並移動到usr/local目錄下
$ wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
$ tar vxf apache-maven-3.2.3-bin.tar.gz
$ mv apache-maven-3.2.3 /usr/local/maven3
修改環境變量,在/etc/profile中添加如下幾行
MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
記得執行source /etc/profile使環境變量生效。
最後運行mvn -v驗證maven是否安裝成功,若是安裝成功會打印以下內容
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00)
Maven home: /usr/local/maven3
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-35-generic", arch: "amd64", family: "unix"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
不管是學習語言仍是框架,先來一個Hello World基本上已是套路了,咱們也經過構建一個Hello World項目來了解如何使用Maven。
首先經過maven建立helloworld項目
$ mvn archetype:create -DgroupId=helloworld -DartifactId=helloworld
生成的項目目錄以下,其中src/main/java是源碼目錄,src/test/java是測試文件目錄。
一共只有三個文件,打開這三個文件,能夠看到App.java中已經寫好了一個Hello World程序,而AppTest中是Junit單元測試的代碼,至於pom.xml,則給出了項目的一些基本信息以及依賴關係。
helloworld/
├── pom.xml
└── src
├── main
│ └── java
│ └── helloworld
│ └── App.java
└── test
└── java
└── helloworld
└── AppTest.java
這裏主要看一下pom.xml文件,內容以下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>helloworld</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>helloworld</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
在pom.xml文件中,首先描述了項目的定義,groupId:artifactId:packaging:version這個四元組可以惟一標記一個項目。咱們不只能夠用這個四元組來標記咱們的項目,也能夠用來標記其它的項目,好比用來描述項目依賴關係。perperties中定義了項目的屬性,也能夠在這裏定義變量並在其它的地方引用。至於最後的dependencies,則是描述了項目的依賴關係,Maven會根據依賴關係自動下載相應的文件並在編譯時使用。
在大型項目開發中,每每會將其分紅若干個子項目,每一個子項目都有着本身的的pom.xml,它們與父pom.xml之間至關於繼承的關係。
能夠說,pom.xml文件的配置是整個Maven的核心重點,也是學習Maven過程當中須要詳細瞭解的內容。這裏只給出了最簡單的配置樣例,詳細瞭解能夠查看官方文檔。
接下來編譯並運行Helloworld項目。
若是是第一次編譯的話,須要聯網,由於Maven會自動下載依賴包。
$ mvn package
下載的依賴包會保存在~/.m2/repository文件夾中,打開這個文件夾,咱們會發現裏面的包正是按前面所說的四元組目錄結構進行存儲的。Maven在依賴一個jar包時會先去本地庫查找,若是沒找到就會從網上下載。固然,並非全部的包都能從網上下載到,好比咱們本身開發的jar包,這時,咱們就能夠用mvn install命令將一個項目安裝到本地倉庫。
打包成功後咱們會發現項目中多了一個target文件夾,目錄結構以下
target/
├── classes
│ └── helloworld
│ └── App.class
├── helloworld-1.0-SNAPSHOT.jar
├── maven-archiver
│ └── pom.properties
├── maven-status
│ └── maven-compiler-plugin
│ ├── compile
│ │ └── default-compile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
│ └── testCompile
│ └── default-testCompile
│ ├── createdFiles.lst
│ └── inputFiles.lst
├── surefire-reports
│ ├── helloworld.AppTest.txt
│ └── TEST-helloworld.AppTest.xml
└── test-classes
└── helloworld
└── AppTest.class
能夠看到,在package過程當中,maven完成了編譯、測試代碼,生成測試報告,生成jar包等一系列工做。
最後,咱們也能夠手動運行jar包查看結果。
$ java -cp target/helloworld-1.0-SNAPSHOT.jar helloworld.App
Hello World!
Maven的命令很是多,學習命令首先要了解Maven的生命週期。
Maven首先會驗證並處理引用資源,以後進行項目編譯,若是沒有聲明跳過測試,也會編譯測試代碼並進行測試、以成測試報告。最後,Maven會將編譯好的內容進行打包,用於發佈。
Maven命令與Maven的生命週期有着對應的關係,一個命令也常常會包含多個生命週期,好比mvn package會完成以上全部步驟。
這裏列舉幾個經常使用的命令
mvn compile 編譯項目
mvn test 編譯運行單元測試
mvn package 打包(jar or war)
mvn install 將項目安裝到本地倉庫
mvn clean 清空項目
mvn eclipse:eclipse 生成eclipse工程
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
jenkins構建svn源碼
從網上找的build.xml文件
具體實現步驟以下:
(1)Global Tool Configuration 下配置jdk與maven
(2)新建一個項目,我這裏選擇的是「構建自由的項目」
(3)構建完成後保存,自動會回到你新建的新項目下的配置界面
(4)找到svn,配置svn路徑跟用戶密碼
(5)保存
(6)在作調用build.xml文件以前,先將配置好的jenkins測試一下
(7)在jenkins首頁,搜索你建立的新項目的名稱,點擊構建,打開「console control」看下有沒有成功。(注意:這裏由於配置並未徹底搭建完成,屬於半成品,因此構建時成功了就能夠)
(8)接下來咱們要試着去將代碼上傳到svn服務器上,而後經過jenkins來調用svn服務器下開發所上傳的代碼是否能夠構建成功
(9)首先,先找到你的項目名稱(也就是你的svn代碼上傳到什麼項目名下)
(10)找到項目以後,點擊「配置」
打開以後是這樣的界面
(11)接下來咱們配置svn代碼路徑。找到「參數化構建過程」----添加參數
配置好以後的頁面以下
保存,點擊構建
利用jenkins實現自動化部署SVN環境
(1)下載maven插件「maven integration plugins」
安裝完成以後就能夠建立maven項目了
(2)安裝Deploy插件」Deploy to container plugin」
安裝完成後會在「構建後」這裏出現一個「Deploy war/ear to a container」
(3)建立構建項目
1.1配置JDK和MAVEN
在配置項目以前先配置JDK和MAVEN
點擊,系統管理----Global Tool Configuration,填寫JDK與MAVEN相關內容
1.2建立構建項目
具體以下
首頁點擊「新建」-----
這裏的報錯信息不用管,由於我這個項目是建立完成的
接下來配置已建立好的項目
1.
2.源碼管理
Repository URL:這個填寫svn分支路徑
Credentials :svn登錄用戶與密碼
3.Pre Steps
4.Build
.
注意:這裏的「pom.xml」本來是在服務器的這個路徑下/root/.jenkins/plugins/workflow-aggregator/META-INF/maven/org.jenkins-ci.plugins.workflow/workflow-aggregator
我將pom.xml下載下來放在了svn目錄裏
就到這裏,保存以後點擊構建
咱們能夠點擊」console control「查看構建信息
建立構建好的項目默認放在/root/.jenkins/workspace/下
Linux下一鍵安裝禪道
禪道官網下載安裝包http://www.zentao.net/download/80025.html
解壓安裝軟件包
tar -zxvf ZenTaoPMS.9.0.1.zbox_64.tar.gz -C /opt/
啓動apache和mysql
/opt/zbox/zbox start
若是想要修改apache端口號
/opt/zbox/zbox -ap 82
瀏覽器打開禪道http://ip地址:apache端口號
利用禪道來作集成禪道+svn
cd /opt/zbox/app/zentao/module/svn/
vim config.php
修改配置文件
具體以下:
$i = 1;
$config->svn->client = '/home/svn/'; -----這個是用來客戶端存儲客戶端執行文件svn.exe路徑
$config->svn->repos[$i]['path'] = 'http://svn.zentao.net/zentao/trunk/'; ----存儲svn代碼路徑
$config->svn->repos[$i]['username'] = 'admin'; ----存儲svn登錄用戶
$config->svn->repos[$i]['password'] = 'admin'; -----存儲svn登錄密碼
下面這裏只要將「/*」和*/去掉
$i ++;
$config->svn->client = '';
$config->svn->repos[$i]['path'] = '';
$config->svn->repos[$i]['username'] = '';
$config->svn->repos[$i]['password'] = '';
執行svn同步命令
1.[root@test001 svn]# cd /opt/zbox/app/zentao/bin/
[root@test001 bin]# ls
init.bat init.sh php ztcli
[root@test001 bin]# bash init.sh
Please input your php path:(example: /usr/bin/php)
/opt/zbox/app/zentao/bin/php
php path is error
Please input your php path:(example: /usr/bin/php)
/usr/bin/php ----php可執行文件的路徑
Please input zentao url:(example: http://localhost:88/zentao or http://localhost)
http://172.19.60.100:82/zentao/my/ ---禪道訪問的url路徑
ztcli.sh ok
backup.sh ok
computeburn.sh ok
dailyreminder.sh ok
checkdb.sh ok
syncsvn.sh ok
syncgit.sh ok
cron.sh ok
[root@test001 ~]# cd /home/svn/ ---切換到svn路徑
[root@test001 svn]# ls ---查看svn路徑下有沒有svn.exe文件
project 測試文件
[root@test001 svn]# mkdir svn.exe ---新建一個svn.exe文件
[root@test001 svn]# cd /opt/zbox/app/zentao/bin/ ----切換到zentao路徑下
[root@test001 bin]# php ./ztcli "http://172.19.60.100:82/zentao/my/"
用php來執行
./ztcli -----在zentao/bin下游這個腳本文件
"http://172.19.60.100:82/zentao/my/" ----zentao訪問路徑
執行完成的效果以下:
[root@test001 bin]# php ./ztcli "http://172.19.60.100:82/zentao/my/"
<!DOCTYPE html>
<html lang='zh-cn'>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta name="renderer" content="webkit">
<title>個人地盤 - 禪道</title>
<script language='Javascript'>var config={"webRoot":"\/zentao\/","appName":"","cookieLife":30,"requestType":"PATH_INFO","requestFix":"-","moduleVar":"m","methodVar":"f","viewVar":"t","defaultView":"html","themeRoot":"\/zentao\/theme\/","currentModule":"my","currentMethod":"index","clientLang":"zh-cn","requiredFields":"","router":".\/ztcli","save":"\u4fdd\u5b58","runMode":"","timeout":30000,"pingInterval":""};
var lang={"submitting":"\u7a0d\u5019...","save":"\u4fdd\u5b58","timeout":"\u8fde\u63a5\u8d85\u65f6\uff0c\u8bf7\u68c0\u67e5\u7f51\u7edc\u73af\u5883\uff0c\u6216\u91cd\u8bd5\uff01"};
</script>
<script src='/zentao/js/all.js?v=9.0.1' type='text/javascript'></script>
<link rel='stylesheet' href='/zentao/theme/default/zh-cn.default.css?v=9.0.1' type='text/css' media='screen' />
<style>.dropdown-menu.with-search {padding: 0; min-width: 150px; overflow: hidden; max-height: 302px;}
.dropdown-menu > .menu-search .input-group {width:100%;}
.dropdown-menu > .menu-search .input-group-addon {position: absolute; right: 10px; top: 0; z-index: 10; background: none; border: none; color: #666}
.dropdown-menu > .menu-search .form-control {border: none!important; box-shadow: none!important; border-top: 1px solid #ddd!important;}
.dropdown-list {display: block; padding: 0; max-height: 270px; overflow-y: auto;}
.dropdown-list > li > a {display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.53846154; color: #141414; white-space: nowrap;}
.dropdown-list > li > a:hover,
.dropdown-list > li > a:focus {color: #1a4f85;text-decoration: none;}
</style><link rel='icon' href='/zentao/favicon.ico' type='image/x-icon' />
<link rel='shortcut icon' href='/zentao/favicon.ico' type='image/x-icon' />
<!--[if lt IE 9]>
<script src='/zentao/js/html5shiv/min.js?v=9.0.1' type='text/javascript'></script>
<script src='/zentao/js/respond/min.js?v=9.0.1' type='text/javascript'></script>
<![endif]-->
<!--[if lt IE 10]>
<script src='/zentao/js/jquery/placeholder/min.js?v=9.0.1' type='text/javascript'></script>
<![endif]-->
</head>
<body>
<script>
var noResultsMatch = '沒有匹配結果';
var chooseUsersToMail = '選擇要發信通知的用戶...';
var defaultChosenOptions = {no_results_text: noResultsMatch, width:'100%', allow_single_deselect: true, disable_search_threshold: 1, placeholder_text_single: ' ', placeholder_text_multiple: ' ', search_contains: true};
$(document).ready(function()
{
$("#mailto").attr('data-placeholder', chooseUsersToMail);
$("#mailto, .chosen, #productID").chosen(defaultChosenOptions).on('chosen:showing_dropdown', function()
{
var $this = $(this);
var $chosen = $this.next('.chosen-container').removeClass('chosen-up');
var $drop = $chosen.find('.chosen-drop');
$chosen.toggleClass('chosen-up', $drop.height() + $drop.offset().top - $(document).scrollTop() > $(window).height());
});
});
</script>
<header id='header'>
<div id='topbar'>
<div class='pull-right' id='topnav'><div class='dropdown' id='userMenu'><a href='javascript:;' data-toggle='dropdown'><i class='icon-user'></i> guest <span class='caret'></span></a><ul class='dropdown-menu'><li class='dropdown-submenu left'><a href='javascript:;'>主題</a><ul class='dropdown-menu'><li class='theme-option active'><a href='javascript:selectTheme("default");' data-value='default'>默認</a></li><li class='theme-option'><a href='javascript:selectTheme("green");' data-value='green'>綠色</a></li><li class='theme-option'><a href='javascript:selectTheme("red");' data-value='red'>紅色</a></li><li class='theme-option'><a href='javascript:selectTheme("lightblue");' data-value='lightblue'>亮藍</a></li><li class='theme-option'><a href='javascript:selectTheme("blackberry");' data-value='blackberry'>黑莓</a></li></ul></li><li class='dropdown-submenu left'><a href='javascript:;'>Language</a><ul class='dropdown-menu'><li class='lang-option active'><a href='javascript:selectLang("zh-cn");' data-value='zh-cn'>簡體</a></li><li class='lang-option'><a href='javascript:selectLang("zh-tw");' data-value='zh-tw'>繁體</a></li><li class='lang-option'><a href='javascript:selectLang("en");' data-value='en'>English</a></li></ul></li></ul></div><a href='/zentao/user-login.html' >登陸</a>
<div class='dropdown'><a href='javascript:;' data-toggle='dropdown'>幫助 <span class='caret'></span></a><ul class='dropdown-menu pull-right'><li><a href='javascript:;' class='open-help-tab'>手冊</a>
</li><li><a href='/zentao/misc-changeLog.html' class='iframe' data-width='800' data-headerless='true' data-backdrop='true' data-keyboard='true'>修改日誌</a>
</li></ul></div><a href='/zentao/misc-about.html' class='about iframe' data-width='900' data-headerless='true' data-backdrop='true' data-keyboard='true' data-class='modal-about'>關於</a>
</div>
<h5 id='companyname'>
易軟天創項目管理系統 </h5>
</div>
<nav id='mainmenu'>
<ul class='nav'>
<li class='active' data-id='my'><a href='/zentao/my/' class='active'><i class="icon-home"></i><span> 個人地盤</span></a></li>
<li data-id='product'><a href='/zentao/product/' >產品</a></li>
<li data-id='project'><a href='/zentao/project/' >項目</a></li>
<li data-id='qa'><a href='/zentao/qa/' >測試</a></li>
<li data-id='doc'><a href='/zentao/doc/' >文檔</a></li>
<li data-id='report'><a href='/zentao/report/' >統計</a></li>
<li data-id='company'><a href='/zentao/company/' >組織</a></li>
<li class='custom-item'><a href='/zentao/custom-ajaxMenu-my-index.html?onlybody=yes' data-toggle='modal' data-type='iframe' title='自定義導航' data-icon='cog' data-width='80%'><i class='icon icon-cog'></i></a></li></ul>
<div class='input-group input-group-sm' id='searchbox'><div class='input-group-btn' id='typeSelector'><button type='button' class='btn dropdown-toggle' data-toggle='dropdown'><span id='searchTypeName'>Bug</span> <span class='caret'></span></button><input type='hidden' name='searchType' id='searchType' value='bug' />
<ul class='dropdown-menu'><li><a href='javascript:;' data-value='bug'>Bug</a></li><li><a href='javascript:;' data-value='story'>需求</a></li><li><a href='javascript:;' data-value='task'>任務</a></li><li><a href='javascript:;' data-value='testcase'>用例</a></li><li><a href='javascript:;' data-value='project'>項目</a></li><li><a href='javascript:;' data-value='product'>產品</a></li><li><a href='javascript:;' data-value='user'>用戶</a></li><li><a href='javascript:;' data-value='build'>版本</a></li><li><a href='javascript:;' data-value='release'>發佈</a></li><li><a href='javascript:;' data-value='productplan'>產品計劃</a></li><li><a href='javascript:;' data-value='testtask'>測試版本</a></li><li><a href='javascript:;' data-value='doc'>文檔</a></li></ul></div><input type='text' name='searchQuery' id='searchQuery' value='' onclick='this.value=""' onkeydown='if(event.keyCode==13) shortcut()' class='form-control' placeholder='編號(ctrl+g)' />
<div id='objectSwitcher' class='input-group-btn'><a href='javascript:shortcut();' class='btn'>GO! </a></div></div>
</nav>
<nav id="modulemenu">
<ul class='nav'>
<li data-id='account'><span id="myname"><i class="icon-user"></i> guest <i class="icon-angle-right"></i> </span></li>
<li class=' active' data-id='index'><a href='/zentao/my/' >首頁</a>
</li>
</ul>
</nav>
</header>
<div id='wrap'>
<div class='outer'>
<link rel='stylesheet' href='/zentao/theme/default/index.css?v=9.0.1' type='text/css' media='screen' 9.0.1 />
<html><meta charset='utf-8'/><style>body{background:white}</style><script>self.location.reload(true);
</script>
接下來咱們去zentao網頁上去創建發佈計劃
具體流程請訪問一下連接http://www.zentao.net/book/zentaopmshelp/38.html
進入頁面以後直接左邊下拉找到你要看的流程就能夠了。
自動部署的思路,使用jenkins做爲任務的總調度師
1.jenkins首先調用svn更新代碼
2.Jenkins再調用ant將工程打成war。並a拷貝到指定目錄,這裏的指定目錄指web server讀取源文件的目錄(這個過程可由ant的build.xml完成,也可由一個單獨的腳本完成)
3.jenkins再調用一個寫好的腳本觸發webserver更新應用程序。