1. 程式人生 > >在Linux上使用Jenkins持續整合JavaWeb專案

在Linux上使用Jenkins持續整合JavaWeb專案

什麼是Jenkins?

Jenkins是一個開源軟體專案,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。
用於監控持續重複的工作,功能包括:
1、持續的軟體版本釋出/測試專案。
2、監控外部呼叫執行的工作。

為什麼要用Jenkins?

是所有CI產品中在安裝和配置上最簡單的。
基於Web訪問,使用者介面非常友好、直觀和靈活,在許多情況下,還提供了AJAX的即時反饋。
Jenkins是基於Java開發的(如果你是一個Java開發人員,這是非常有用的),但它不僅限於構建基於Java的軟體。
Jenkins擁有大量的外掛。這些外掛極大的擴充套件了Jenkins的功能;它們都是開源的,而且它們可以直接通過web介面來進行安裝與管理。

準備工作

這裡需要說明下,本次搭建是在Ubuntu16.04上完成的搭建(Maven + git + Tomcat ),不同的Linux系統搭建可能有些細微的差別

Tomcat的安裝

下載完把Tomcat目錄下面的東西放到 /usr/local/tomcat 下面
然後把CATALINA_HOME配置好,並想辦法開機啟動Tomcat

mv apache-tomcat-8.0.43 /usr/local/tomcat

配置開機啟動Tomcat
在/etc/init.d/ 新建指令碼 命名為tomcat

#!/bin/sh

#tomcat auto-start

# description: Auto-starts tomcat
# processname: tomcat # pidfile: /var/run/tomcat.pid export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun case $1 in start) sh /usr/lib/tomcat/bin/startup.sh ;; stop) sh /usr/lib/tomcat/bin/shutdown.sh ;; restart) sh /usr/lib/tomcat/bin/shutdown.sh sh /usr/lib/tomcat/bin/startup.sh ;; *) echo
'Usage:tomcat start|stop|restart' ;; esac

給tomcat賦予可執行許可權

sudo chmod +x tomcat

配置符號連結

sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat  
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

安裝sysv-rc-conf

sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf

這時候會進入啟動項管理
在剛才新增的tomcat上面使用空格選中上2 3 4 5( X 代表被選中)

在Tomcat安裝這裡其實沒什麼特別的,樓主剛開始就踩坑了,圖方便用apt-get直接裝的tomcat 7,結果出了很多問題,後來去apache官網下的Tomcat 9結果更坑爹了,Tomcat 9 M19版裡面使用Jenkins自動化部署會報錯FAIL - Deploy Upload Failed,查看了下host-Manager的啟動日誌,發現報的錯誤是Exception: Cannot find operation isServiced,去谷歌一搜,發現Tomcat M19版這裡面確實是有問題的,已經提了Bug,並且將會在Tomcat M20版本解決這個問題,樓主只好下了個Tomcat 8,結果立馬就好使了。。。

JDK的安裝

我這邊是從官網下載的JDK,解壓完之後替換掉系統的JDK。
我這裡把jdk解壓完放在了/usr/local/jdk/
配置環境變數

vi /etc/profile
#在檔案預設追加
export JAVA_HOME=/usr/local/jdk
PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

編輯完成後,使更改立即生效

source /etc/profile

對應地替換系統SDK

sudo update-alternatives --install /usr/bin/java java /usr/local/jdk/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk/bin/javac 300

Maven安裝

wget http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -xvzf apache-maven-3.3.9-bin.tar.gz 
sudo mv apache-maven-3.3.9-bin /usr/local/mvn

這裡就完成了 maven的下載解壓以及移動到/usr/local/mvn目錄
然後配置系統環境變數

vi /etc/profile
#在檔案末尾追加
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:MAVEN_HOME

編輯完成後,使更改立即生效

source /etc/profile

git 安裝

sudo apt-get install git

開始安裝

Jenkins的安裝

sudo apt-get install jenkins

這裡也可以選擇去官網下載Jenkins的war包扔到Tomcat的webapps目錄

安裝完需要修改Jenkins的預設埠號(預設8080與Tomcat衝突)

準備外掛

因為GFW的影響,Jenkins安裝過程可能不能把全部外掛都能安裝完畢,有紅叉的時候直接跳過,過後再從Jenkins官網安裝即可

必備的外掛有

Github
SSH
Deploy to container Plugin
郵件提醒外掛(可能已經內建了)

去官網下好後進到本地Jenkins管理介面->系統管理->外掛管理->高階
把剛才下載的外掛上傳上去
一起安裝完畢再重啟

然後進系統管理->Global tool configuration

Global tool configuration

把安裝好的JDK、Maven、git設定好,然後就可以新建專案了,我這裡面比較偷懶,直接讓Jenkins線上安裝了一個JDK

配置開發環境

完成安裝,新建專案

新建maven專案

原始碼管理

原始碼管理這裡我們選擇git,上面添上你的遠端倉庫地址
原始碼管理

配置SSH免密登入

下面的Credentials可以配置SSH免密登入遠端倉庫

需要在本地生成一個SSHKey

ssh-keygen -t rsa -P ''

輸入一次回車即可

Ubuntu 不像Mac裡面有Pbcopy這樣方便的工具,需要安裝一個xclip來複制我們生成的公鑰。

sudo apt-get install xclip

cat ~/.ssh/id_rsa.pub |xclip -selection c

這樣新生成的公鑰就進到我們的貼上板裡面了

把這個公鑰扔進遠端倉庫的SSHkey裡面

同樣地、在剛才的Credentials新建,型別選擇 SSH with private key,選擇from ~/.ssh

Username 隨便起 比如起24k

配置私鑰

然後回到Credentials就可以選擇24k了
配置遠端倉庫

配置構建觸發器

構建觸發器這裡,可以配置定時任務用來定時構建你的Web專案

這裡我選的是POLL SCM,它會按照你給定的時間去檢查遠端程式碼倉庫的版本資訊,並自動拉取到你的機器上完成構建動作,這裡可以配置日程表定時構建,這裡面給出常用日程表配置

每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 *

配置構建完成後自動部署至Tomcat容器

構建完成後可以配置構建後的操作,這裡就要用到剛才安裝的deploy to container外掛了。

新增構建後操作,選擇deploy war/ear to container

這裡面選擇的Tomcat 7.x

Deploy war to a container

這裡對引數解釋一下

WAR/EAR就是你要釋出的WAR包,用的是相對路徑

Manager user name

Manager password

Tomcat Manager是Tomcat自帶的、用於對Tomcat自身以及部署在Tomcat上的應用進行管理的web應用。Tomcat是Java領域使用最廣泛的伺服器之一,因此Tomcat Manager也成為了使用非常普遍的功能應用。Tomcat 預設Manager User是沒有啟用的,所以我們要啟用Manager的使用者
Manager應用使用的是 Tomcat安裝目錄下conf/tomcat-users.xml的檔案,找到並開啟

sudo vi /usr/local/tomcat/conf/tomcat-users.xml
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="both" password="both" roles="tomcat,role1"/>
  <user username="role1" password="role1" roles="role1"/>

上面這幾行 預設是被註釋掉的,把註釋幹掉,並加上下面的幾行

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager,manager-script"/>

檔案尾部的完整配置

 <role rolename="tomcat"/>
 <role rolename="role1"/>
 <user username="both" password="both" roles="tomcat,role1"/>
 <user username="role1" password="role1" roles="role1"/>
 <role rolename="manager"/>
 <role rolename="manager-gui"/>
 <role rolename="admin"/>
 <role rolename="admin-gui"/>
 <role rolename="manager-script" />
 <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager,manager-script"/>

檔案裡面的 user 現在使用者名稱密碼全都是 tomcat,需要的話可以自行修改成別的。

我們這裡現在就可以在Manager 的username上添上你填好的username和password和tomcat-users.xml配置檔案裡面的對應,我的這裡面全都是tomcat.

這樣就算配置完成了.

完成所有配置後對專案立即構建,然後點開Console Output就可以檢視到構建日誌了,沒有什麼問題的話就完成了構建。Enjoy~

部署完成

可能遇到的問題

1.Linux 系統是多使用者的,所以在這種環境的配置上不同的使用者很容易出問題

2.使用Maven搭建專案的時候,依賴包解析失敗,我的POM裡面有個Ojdbc14,因為Oracle已經收費了,所以我們需要把這個jar包打到自己的Maven本地倉庫裡面

這裡需要切到對應的jar包目錄執行下面的命令,注意用Jenkins部署的時候會產生一個Jenkins使用者,所以打包時候一定要切到Jenkins使用者,否則就需要自己把jar包拖拽到/home/Jenkins/目錄下的maven倉庫下面了

打包命令是

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc14.jar -DgeneratePom=true 

這裡,我的Ojdbc14.jar是10.2.0.3.0版本,在下載的時候,可以自行改成你對應的版本

Pom.xml裡面也要依賴就寫你打包的jar版本就可以了,比如我這裡

<dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc14</artifactId>
      <version>10.2.0.3.0</version>
</dependency>

相關推薦

Linux使用Jenkins持續整合JavaWeb專案

什麼是Jenkins? Jenkins是一個開源軟體專案,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。 用於監控持續重複的工作,功能包括: 1、持續的軟體版本釋出/測試專案。 2、監控外部呼叫執行的工作。 為什麼要用Jenkins

使用Jenkins持續整合maven專案

jenkins的使用 1. 前期準備 (1) 安裝jdk (2) 配置環境變數 JENKINS_HOME JENKINS_HOME 是存放jenkins啟動後資料和專案等檔案的地方,如果沒有配置,windows下自動預設為C:\Users\{

Linux學習筆記32——linux搭建持續整合環境之maven及nexus倉庫

linux搭建jenkins 一、什麼是持續整合 這個做法有如下好處: 整體流程: 重要組成部分 二、安裝jdk及maven 1,安裝jdk 2,安裝maven 三、安裝Maven私服N

工作環境下Apache Jmeter + ANT +Jenkins 持續整合環境搭建(續)----Linux伺服器搭建ant和jmeter

接上文https://blog.csdn.net/be_x_man/article/details/80997740 在本地配置好了jmeter和ant之後,還需要將指令碼放在jenkins上執行,所以也需要在jenkins所在的Linux伺服器上搭建jmeter和ant 配置過程基本上和W

Linux下搭建Git伺服器 Jenkins持續整合環境部署

1、安裝Git 見 Jenkins持續整合環境部署 第四節 2、建立Git使用者和使用者組 1 groupadd git 2 useradd git -g git 3、建立證書切換到git使用者建立證書 1 su git 2 cd /home/git 3 mkdir .ssh 4 c

Jenkins持續整合Linux Git 安裝

一、 下載git原始碼包 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz 二、解壓並進入該原始碼包目錄下 三、安裝所需依賴包 yum install curl-devel expat-devel ge

Linux運維•持續整合自動化(定時檢測程式碼+分發到生產伺服器)- Jenkins + Git

如果按照前面的安裝方法,Jenkins 和 Git 應該已經可以用WEB打開了,下面我們來介紹怎麼配置,怎麼使用。本分前半部分我們先用Jenkins配和Git實現定時構建檢測程式碼並將程式碼分發到生產環境的伺服器。 Maven + Neuxs 我們後續再繼續更新ing...

windows部署jenkins持續整合maven測試專案不能訪問測試報告

買了一臺阿里雲的伺服器用於練習maven test專案,系統版本wiondows server 2012,將jenkins war包部署在Tomcat伺服器上,專案構建後,生成的報告在C:\Windows\System32\config\systemprofile\.jenkins\workspace目錄下,

Jenkins常見問題解決】01. Mac使用Jenkins持續整合報錯Can’t connect to window server – not enough permissions.

錯誤提示:  <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. Fatal Internal err

Linux下搭建Jenkins持續整合

環境:centos7 1.安裝準備 A.Maven(也可留在Jenkins安裝完成後,配置maven時選擇自動安裝) B.SVN(或Git) C.OpenJDK(不是JDK。也同樣可以留在

Jenkins持續整合專案搭建——基於Python Selenium自動化測試

參考連結:https://www.liaoxuefeng.com/article/1083282007018592 第一步:去官網https://jenkins.io/下載最新的war包   第二步:安裝.war包即:安裝jinkens 開啟命令視窗,進入.war包所在的路徑下 執行

linux環境下搭建Jenkins持續整合Jenkins+git+shell+maven+tomact)

準備環境   jenkins.war包 ,jdk1.8  ,tomact , maven,git 1.Jenkins  war包,下載地址https://jenkins.io/zh/download/  ,當然你可以通過wget 下載, 也可以通過xftp遠端傳輸 2.

Docker 實戰(2)- 配置 Jenkins 容器持續整合環境

如果你還想從頭學起 Docker,可以看看這個系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html   搭建 Jenkins 容器 就是實戰第一篇文章:https://www.cnblogs.com/poloyy/p/1395463

Jenkins持續整合工具安裝

文章目錄 安裝Jenkins 安裝OpenJDK war包方式安裝Jenkins 登入 安裝Jenkins 這裡不建議docker安裝,因為使用Jenkins的時候會依賴很多宿主機的東西,如果使用docker

工作環境下Apache Jmeter + ANT +Jenkins 持續整合環境搭建

最近工作需要在公司使用jmeter實現介面自動化測試,我就選取了jmeter+ant+jenkins,搭建環境過程如下 本地環境:win7 64位 雲桌面系統 1,本地電腦上JDK安裝,網上教程很多,這裡不再記錄 2,本地電腦上Apache jmeter下載與安裝 地址:http:/

部署jenkins持續整合工具

1、Linux安裝配置jdk環境 1.1、上傳到 Linux 伺服器;例如: 上傳至: cd /usr/local 1.2、解壓: rpm -ivh jdk-8u111-linux-x64.rpm 1.3、環境變數配置 cd /etc 在etc下,找到 profile檔案,增加如下如下配置:

安裝jenkins centos下搭建Jenkins持續整合環境(安裝jenkins)

1、安裝JDK yum install -y java 2、安裝jenkins 新增Jenkins庫到yum庫,Jenkins將從這裡下載安裝。 1 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redh

Jenkins持續整合配置(Android)

前言 Jenkins持續整合配置,總共有6個選項 * General * 原始碼管理 * 構建觸發器 * 構建環境 * 構建 * 構建後操作 配置過程 General 原始碼管理 構建觸發器 構建環境 構建

jenkins 持續整合解決方案

jenkins 持續整合解決方案 jenkins 持續整合解決方案 0 緣起 1 環境準備 2 構建指令碼 3 Dockerfile 的編寫 4 流程

jenkins持續整合docker映象構建

映象環境包括: docker docker-compose java tomcat maven sonar-scanner Dockerfile: FROM ubuntu:16.04 MAINTAINER [email protec