jenkins

CI/CD

持续集成/持续发布

开发(git) -->git主库–>jenkins(git+jdk+tomcat+maven打包+测试)–>发布到tomcat服务器

jenkins

Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到web容器中。

Jenkins

Jenkins概述

是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。jenkins构建工具有Maven、Ant、Gradle。
1、CI
英文全称:Continuous Integration
中文全称:持续集成工具
持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。
2、SCM
英文全称:Source Control Management (Software Version Control)
中文全称:源码控制管理软件 版本控制

Jenkins目标

是监控软件开发流程
快速显示问题
提高开发效率
过程控制

Jenkins特性

1、易于安装
不需要安装、不需要数据库,只需通过java -jar jenkins.war或部署到一个servlet容器中

2、易于配置
所有的配置都可能通过jenkins提供的web界面完成,当然如果你喜欢,也可以通过手动修改xml文件进行配置

3、测试报告
生成JUnit或TestNG的测试报告.集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。

4、文件识别
jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包

5、分布式构建
支持Jenkins能够让多台计算机一起构建/测试。

6、插件支持
jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件

7、任务(Job)和构建(build)
任务:(Job)是Jenkins的一个执行计划,是一系列操作的集合。
构建:是Jenkins的任务的一次运行。

8、工作流程图

(1)、 开发者检入代码到源代码仓库。
(2)、CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。
(3)、CI系统会在对应的工作区内执行构建过程。
(4)、配置如果存在:构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。
(5)、配置如果存在:如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。
(6)、CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。
Jenkins就是这么一个CI系统。之前叫做Hudson。

jenkins实战案例

1、环境

github
192.168.0.115 部署jenkins
192.168.0.109充当tomcat网站服务器
建议使用流量联网

1、环境
github账号
192.168.88.150部署jenkins(建议4G的centos7-64)
192.168.88.151充当tomcat服务端

2、部署git
(1)、安装依赖包

# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-decel gcc perl-ExtUtils-MakeMaker

(2)、git官网下载最新版本GIT

# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

(3)、安装git

#上传需要的文件
# rz
# unzip 7.jenkins.zip
#解压并cd到解压目录
# tar xf git-2.9.5.tar.gz
# cd git.2.9.5/
# make prefix=/usr/local/git all           #编译码包
# make prefix=/usr/local/git install       #源码安装#修改环境变量
# vim /etc/bashrc
PATH=$PATH:$HOME/bin:/usr/local/git/bin
#关于bashrc和profile
#/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
PATH=$PATH:$HOME/bin:/usr/local/git/bin
#关于bashrc和profile
#/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次!!!登录!!!时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.# source /etc/bashrc#测试是否安装成功
# git --version

3、jdk环境部署
(1)、下载软件(注意:不能用jdk9和jdk10)
jdk-8u151-linux-x64.tar.gz

(2)、解压安装

# tar xvzf jdk-8u151-linux-x64.tar.gz -C /usr/local
# cd /usr/local/
# mv jdk1.8.0_151 jdk

(3)、修改环境变量

# vim /etc/bashrc
#两种方式:
#第一种:
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin#第二种:
JAVA_HOME=/usr/local/jdk
export PATH=$PATH:HOST/bin:/usr/local/git/bin:$JAVA_HOME/bin# vim source /etc/bashrc

(4)、测试jdk

# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)#如果系统中已安装java-1.8.0-openjdk。java-1.8.0-openjdk 。java-1.8.0-openjdk请卸载他们。

4、部署maven
(1)、下载解压Maven

# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
# tar xvzf apache-maven-3.5.3-bin.tar.gz -C /usr/local/
# mv /usr/local/apache-maven-3.5.3/ /usr/local/maven

(2)、修改环境变量

# vim /etc/bashrc
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
PATH=$M2:$PATH:$HOME/bin:/usr/local/git/bin
export JAVA_HOME=/usr/local/jdk
export PATH
# source /etc/bashrc

(3)、测试maven

# mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/local/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

5、部署tomcat
(1)、官网下载tomcat
apache-tomcat-9.0.1.tar.gz

(2)、解压部署

# tar xvzf apache-tomcat-9.0.1.tar.gz  -C /usr/local/
# mv /usr/local/apache-tomcat-9.0.1/ /usr/local/tomcat

(3)、定义Tomcat所需环境变量

# vim /etc/profile
#或者在/etc/bashrc/    文件内添加
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME# source /etc/profile   source /etc/bashrc/

(4)、启动tomcat

# /usr/local/tomcat/bin/startup.sh

(5)、测试tomcat
http://192.168.0.115:8080/

(6)、关闭tomcat

#/usr/local/tomcat/bin/shutdown.sh

(7)、配置tomcat的角色和用户(这个可以省略,直接用root登录)

在tomcat目录conf文件夹下tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin,manager,manager-script"/>

6、部署jenkins
(1)、官网下载jenkins:
http://updates.jenkins-ci.org/download/war/2.130
下载最新版
(2)、部署jenkins.war到tomcat下:

# cp jenkins.war  /usr/local/tomcat/webapps/
# /usr/local/tomcat/bin/startup.sh
# 注释:
1.jenkins密码忘了,可以重置它
2.重置jenkins:
关闭tomcat
# /usr/local/tomcat/bin/shutdown.sh
# rm -rf /usr/local/tomcat/webapp/jenkins*
# rm -rf ~/.jenkins*
# cp jenkins.war  /usr/local/tomcat/webapps/
启动tomcat即可访问jenkins

(3)、启动tomcat: 注意启动tomcat会自动解压webapps下的war包

# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:    /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:    /usr/local/jdk
Using CLASSPATH:   /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

(4)、登陆jenkins:
http://192.168.88.151:8080/jenkins

添入以下文件密码到上图页面中
# cat /root/.jenkins/secrets/initialAdminPassword
568436617d584c2b96f19e3de8012d47
点击continue

选择suggested的插件进行下载

等待安装完成:
因为网速原因,插件可能下载失败,没关系,把他们记录下来,比如下图的两个插件,点击继续,进去之后手动重新安装未安装好的插件
也可以重试,继续下载安装。

创建用户

Full Name:jenkinsweb页面登录名称
password:登录密码

jenkins的分享地址

欢迎界面

7、管理插件
(1)、简介
我们配置的是 git + maven 方式的 自动化部署 所以git和maven的相关插件是必须的 还有一个ssh用于机器间的文件传送

(2)、安装插件Deploy to container:
作用:支持自动化将代码部署到tomcat容器

安装过程:
系统管理–>插件管理–>可选插件–>过滤Deploy to container–>勾选,点击下边的按钮:直接安装,这个可能时间较久,等待即可。

安装图示:
进入插件管理:

搜索插件并安装:

安装完之后,如果勾选了:安装完成后重启jenkins 那么会重启jenkins。

(3)、安装插件Maven Integration
作用:
jenkins 利用maven编译,打包,所需插件

(4)、安装git相关3个插件

GIT plugin(以下三个):
1、GitHub Authentication
2、GitHub Branch Source
3、GitHub Organization Folder

(5)、安装插件:Publish Over SSH

8、检查错误配置
左侧:点击“系统管理”
(1)、如果有“编码问题”错误,在Tomcat–>conf–>server.xml文件中修改即可

# head -1 /usr/local/tomcat/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>

(2)、如果有”反向代理设置有误“错误,请忽略

9、jenkins系统设置
(1)、注意:
这里没有强调的都设置为默认即可

(2)、路径:
系统管理->(全局工具配置)Global Tool Configuration,配置jdk,git,maven的根目录

(3)、图示:
找到全局配置工具

配置JDK根目录(注意不能是JDK9.0)

配置git目录

配置maven并保存

汇总截图

关于jenkins 设置中文语言(略)

关于重启jenkins(略)

http://192.168.43.114:8080/jenkins/restart
http://192.168.43.114:8080/jenkins/exit
http://192.168.43.114:8080/jenkins/reload

10、SSH设置
(1)、目的、简介:
(192.168.0.115)jinkens服务器上的maven将开发产生的*.war包。通过SSH自动推送到远程tomcat 服务器上(192.168.0.109)。需要手工配置ssh key。配合自动化推送
192.168.0.115是jenkins
192.168.0.109是tomcat网站服务器,代表业务服务器

1.jenkins服务器准备秘钥认证
# ssh-keygen
一路回车
# ssh-copy-id -i 192.168.0.109
注意这里的192.168.0.109是一台tomcat网站服务器。什么都不用安装,接到代码即可。
# ssh 192.168.0.109 登录不需要密码即可
2.在jenkins上配置ssh信息
准备SSH私钥
# ip a | grep inet
inet 192.168.0.115/24 brd 192.168.0.255 scope global dynamic ens32# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAuZ1QvEGtK/sbllkN80urEDm/ggIM4QD9JWmmAPUnpuXMDvOS
bbbAUvmrneO4QrSRH+2cXZNabn1C26I2Oi0u6a14fU/UtpkXMMSTHVnzGnyC/uCa
p7r3YaDHYjt1jfVpG0mR+JkuOiLgi+PnbgtNckE+FPQCG9EacActIyDb0gIswvbM
mq1pvwJQLOSN/AAUllTSigZPqIMdkLLWHoutFkvdAgdUblEMEdl1mztl4xInkRIo
pxuWWjdo7V1YuAXmHZXjutLiE5OrM6yEdAeHLDs5KoYGar2QBZ9owCoXfN+dNrSi
XeoFp9RkNmzbkFBWRbh97gLnBxw01lxnaxU+8QIDAQABAoIBAHWDl93YZt71eB3T
+/UQ7xiytwCEc8rwaVUKckMg8x3DV1IP+6DilxjxYSnxRnNVBpyEPv8vj41sWKvd
Ix/qA02GukX8CNwiSIBjtBBdJoCaXAUqBkAzKvPwastSgbaCrSzNg1E1CgNcmXV3
sMoG9d1kWP3DDqK13FsY8AbRgtqN2X7f5zuIFGAHy0AfMiBtmhLCD8wNi7KioRcQ
hc4U/W+Uc3++/VWPaptJEG5TTqLJ1JClDULCGRS6q+ndneeyYM7U15pFSaQa+ZSq
MljCybfh+STV9Qq1ErDXKK9UoSkbbFOGdWPm7TrltvPuLwrUzRdangJGnco8vA9/
Cn1U+MECgYEA5m/IH1UjBz0q7+MEnoCE52R4I7rEyeyLf9M5ebX3lq1iD/a0rPXn
e6PnS5RfbFmBDKov/xekjtfrI/ta3Lj38dejtzTasEn+4dXITA7HPP8kSEUgRm+c
Lh4CjkzQKnSJ7TZgDB5w21ZO0li4kBQ2r5gr/Vf9MFaTJCUqxM4vNO0CgYEAzjSe
201kk5G73Oub2wzR9XEQt0+bAvs7JA9ZvcC9rObQ9FUsUgCD0nR88EGGIjiKkas5
JUrC5Rzw4Jhp8SqQCVeOk8milP2AwtqGLEjJ6WqLGdJsrFtRYBdhdxNjsilNiNEZ
97FLAfsgIDT9DmWX77QXN5QkkAL5UWAm787UFZUCgYBUA7E86zdoLj73UxeeClFq
Y9EBhdi1ng6GPiaYX2Wzg+da1qGs5cLN60Yq4h+gS0mnqmzxXlda1RIf/kZ0buPH
Qs2nwBdzaqcJA36RbFnrvUInLzzDMXIJxls8Mnk64V5gJBEEmhyfe2oler9fmF8P
yjVPmsLu2sGuzfY35syDSQKBgQCBkMi8LT3kB28OWjCdC8olOXzyYZ+Z2PgJKWgO
9bt4l7N1wsrNX6t0omMap2E7wWE4NGj8yKP7SBsGVF5E/aRxakWZENoKWdr9FEe4
LahI9PwgJnrINbzE7wv7wQAkoxUnwZNaclkaDovaENFsqWM1Z2grMPdkUaoMeqkc
h031nQKBgQDObARvT8wAmGGtDBMsRjbxdgDEl+KsoREhPw6UME3KKNjmQFVBZBy4
RzvjFCaXWVtIai2WZq5UrsdqdffctX7fm9fNdqx+fuXBfQzK59e9FfV2z2JpXCMx
SIdkhf+P+J/bBKDCiAumz9qNkdKaPC5ruAziLKrttB7cH5dsjFy35g==
-----END RSA PRIVATE KEY-----

复制cat出来的所有内容,粘贴到下一步页面上的key中。
进入金jenkins系统设置

粘贴到jenkins

11、新建任务
(1)、创建任务:

(2)、定义名称和类型:
创建名称->选择maven项目->确定

(3)、设置maven:
公有git仓库:
设置描述:

选择版本控制器和仓库地址:
https://github.com/bingyue/easy-springmvc-maven
注意:如果是私有仓库,这里需要建立credentials身份认证

设置触发器(保持默认):

设置构建(编译打包):
手动添加Goals and options(是用那个工具构建):
clean package -Dmaven.test.skip=true

构建后操作 :
在构建后设置中 选择:(send build artifacts over ssh)通过SSH发送构建工件
点击–>增加构建后操作


说明:
name:
ssh server 因为之前的配置会默认出现tomcat业务服务器的名字

source file:
target/*.war构建之后,在jenkins服务器上是可以自动看到war包的。(该路径不需要创建)

# ls /root/.jenkins/jobs/testjob1/builds/target/*.war

Remove prefix:自动删除路径前缀(不需要创建路径前缀)

Remote directory:tomcat业务服务器上的路径,需要提前在192.168.0.109(tomcat)上创建该目录。用来存放网站源代码。(需要后台创建)

# mkdir -p /jenkins/war

Exec command:
tomcat(192.168.0.109)在接收到源码之后的自定义动作。
比如:将源码拷贝到网站的主目录(/jenkins),并执行一些其他操作如重启服务器等(或创建文件touch)(需要后台创建)

# mkdir  /jenkins/sh
# cat  /jenkins/sh/deploy.sh
# cp -r /jenkins/war/*.war   /jenkins
# touch /tmp/aaaaaa.txt
# chmod +x /jenkins/sh/deploy.sh

私有git仓库(略):
私有仓库源码管理
如果是私有仓库:地址要这样写

报错:如果是私有库,必须添加一个Credentials
Failed to connect to repository : Command “/usr/local/git/bin/git -c core.askpass=true ls-remote -h http://www.xxx.com/gitlab/root/test.git HEAD” returned status code 128:
stdout:
stderr: fatal: Unable to find remote helper for ‘http’
或者:
Failed to connect to repository : Command “git ls-remote -h git@xxxxx.com:xxx/dev_test.git HEAD” returned status code 128:
stdout:
stderr: Permission denied, please tryagain.
Permission denied, please try again.
Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly原因:没有配置git的ssh key。

解决方法:执行下面的命令,生成key:
ssh-keygen -t rsa -C "admin@example.com"然后将~/.ssh/目录下的id_rsa.pub中的公钥,放到git的ssh key中。再在Jenkins中创建新的Credentials。类型是SSH Username with private key。Username使用ssh-keygen中用到的邮箱,Private Key中选择“From the Jenkins master ~/.ssh”即可。修改后,问题解决。

创建credentials:
步骤1:
在 jenkins 中使用 git 插件从仓库中 pull 代码的时候会要求 jenkins 必须有 pull 权限(尤其是当git开启了ssh认证的时候),在配置 jenkins job 的时候有以下这些方法配置 ssh key:
登陆 jenkins 服务器,切换到 jenkins 用户(wing直接使用的root账户),生成 ssh key,然后把 公钥添加到 git 服务器上.

# su - jenkins //切换到 jenkins HOME 目录
# ssh-keygen -t rsa  // 生成 ssh key, 复制 xxx.pub 公钥到 git 服务器上即可.

步骤2:在jenkins界面,依次点击:
Credentials -> System -> Add domain:
Domain Name: 填写你git服务器的地址,如 github.xxx.com(wing填写的IP地址,127.0.0.1)
Description: 随便写一点描述,如 This is the Credential for github

如图

点击 ok 后,再点击 “adding some credentials?”
进入页面后,可以选择 Username with password 或者 SSH Username with private key, 根据你的情况选择,这里我们选择 Username with private key:
Username: 随便起一个名字,以便在创建 Job 的时候使用该 Credential
Private Key:可以指定文件,也可以使用默认的 ~/.ssh,当然也可以直接将私钥复制粘贴到此处。
Passphrase: 如果你在创建 ssh key 的时候输入了 Passphrase 那就填写相应的Passphrase,为空就不填写
ID: 空
Description: 空

点击 ok 后 Credential 就创建好了。
如果你再新建 Job 就可以看到我们的 Credential 选项了:

12、构建任务
(1)、立即构建


(2)、查看构建结果
结果路径

输出信息
由用户 xulei 启动
构建中 在工作空间 /root/.jenkins/workspace/testjob1 中

/usr/local/git/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
/usr/local/git/bin/git config remote.origin.url https://github.com/bingyue/easy-springmvc-maven.git # timeout=10
Fetching upstream changes from https://github.com/bingyue/easy-springmvc-maven.git
/usr/local/git/bin/git --version # timeout=10
/usr/local/git/bin/git fetch --tags --progress https://github.com/bingyue/easy-springmvc-maven.git +refs/heads/:refs/remotes/origin/
/usr/local/git/bin/git rev-parse refs/remotes/origin/master^{commit} # timeout=10
/usr/local/git/bin/git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 67604f7f9f30505e3bb3e8935c745154f04aa372 (refs/remotes/origin/master)
/usr/local/git/bin/git config core.sparsecheckout # timeout=10
/usr/local/git/bin/git checkout -f 67604f7f9f30505e3bb3e8935c745154f04aa372
Commit message: “修改standard/1.1.2的依赖”
/usr/local/git/bin/git rev-list --no-walk 67604f7f9f30505e3bb3e8935c745154f04aa372 # timeout=10
Parsing POMs
Established TCP socket on 40696
[testjob1] $ /usr/local/jdk/bin/java -cp /root/.jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-agent-1.12-alpha-1.jar:/usr/local/maven/boot/plexus-classworlds-2.5.2.jar:/usr/local/maven/conf/logging jenkins.maven3.agent.Maven35Main /usr/local/maven/ /usr/local/tomcat/webapps/jenkins/WEB-INF/lib/remoting-3.20.jar /root/.jenkins/plugins/maven-plugin/WEB-INF/lib/maven35-interceptor-1.12-alpha-1.jar /root/.jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.12-alpha-1.jar 40696
<=[JENKINS REMOTING CAPACITY]=>channel started
Executing Maven: -B -f /root/.jenkins/workspace/testjob1/pom.xml clean package -Dmaven.test.skip=true
[INFO] Scanning for projects…
[WARNING]
[WARNING] Some problems were encountered while building the effective model for springmvc-maven:easy-springmvc-maven:war:0.0.1-SNAPSHOT
[WARNING] ‘build.plugins.plugin.version’ for org.apache.maven.plugins:maven-war-plugin is missing. @ line 22, column 15
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ----------------< springmvc-maven:easy-springmvc-maven >----------------
[INFO] Building springmvc-maven 0.0.1-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ easy-springmvc-maven —
[INFO] Deleting /root/.jenkins/workspace/testjob1/target
[INFO]
[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ easy-springmvc-maven —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /root/.jenkins/workspace/testjob1/src/main/resources
[INFO]
[INFO] — maven-compiler-plugin:3.1:compile (default-compile) @ easy-springmvc-maven —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /root/.jenkins/workspace/testjob1/target/classes
[INFO]
[INFO] — maven-resources-plugin:2.6:testResources (default-testResources) @ easy-springmvc-maven —
[INFO] Not copying test resources
[INFO]
[INFO] — maven-compiler-plugin:3.1:testCompile (default-testCompile) @ easy-springmvc-maven —
[INFO] Not compiling test sources
[INFO]
[INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ easy-springmvc-maven —
[INFO] Tests are skipped.
[WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.BuildInfoRecorder$1; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/
[INFO]
[INFO] — maven-war-plugin:2.2:war (default-war) @ easy-springmvc-maven —
[INFO] Packaging webapp
[INFO] Assembling webapp [easy-springmvc-maven] in [/root/.jenkins/workspace/testjob1/target/easy-springmvc-maven]
[INFO] Processing war project
[INFO] Copying webapp resources [/root/.jenkins/workspace/testjob1/src/main/webapp]
[INFO] Webapp assembled in [127 msecs]
[INFO] Building war: /root/.jenkins/workspace/testjob1/target/easy-springmvc-maven.war
[INFO] WEB-INF/web.xml already added, skipping
[WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.MavenArtifactArchiver$2; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/
[WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.MavenFingerprinter$1; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.358 s
[INFO] Finished at: 2018-06-18T03:39:25+08:00
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /root/.jenkins/workspace/testjob1/pom.xml to springmvc-maven/easy-springmvc-maven/0.0.1-SNAPSHOT/easy-springmvc-maven-0.0.1-SNAPSHOT.pom
[JENKINS] Archiving /root/.jenkins/workspace/testjob1/target/easy-springmvc-maven.war to springmvc-maven/easy-springmvc-maven/0.0.1-SNAPSHOT/easy-springmvc-maven-0.0.1-SNAPSHOT.war
channel stopped
SSH: Connecting from host [localhost.localdomain]
SSH: Connecting with configuration [tomcat] …
SSH: EXEC: STDOUT/STDERR from command [/jenkins/sh/deploy.sh] …
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [tomcat] …
SSH: Transferred 1 file(s)
Finished: SUCCESS

3.观察tomcat网站服务器,代码和脚本

[root@localhost ~]# ls /jenkins/
easy-springmvc-maven.war  sh  war
[root@localhost ~]# ls /tmp/aaaaaa.txt
/tmp/aaaaaa.txt

easy-springmvc-maven.war 就是推送过来的网站源码了

jenkins的应用相关推荐

  1. jenkins+sonarqube流水线脚本模板

    pipeline { //这个任务在哪个主机上运行 //agent any//将这个项目运行在slave上 agent { label 'node1' }//参数化构建,主要设定git_version ...

  2. 更改Jenkins升级站点

    更新地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json [图示]:

  3. Jenkins首次安装推荐插件出错 No such plugin: cloudbees-folder 超详细解决方案

    我的环境:腾讯云 CentOS7 轻量应用服务器 docker run -u root -itd -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/v ...

  4. jenkins ssl证书报错问题解决

    Jenkins 是一款流行的开源持续集成工具用于项目开发,具有自动化构建.测试和部署等功能. 可以.war的方式来运行Jenkins: 从Jenkins下载jenkins.war. 在目录下运行:ja ...

  5. 修改jenkins启动的默认用户

    # 背景 通过yum命令安装的jenkins,通过service jenkins去启动jenkins的话,默认的用户是jenkins,但jenkins这个用户是无法通过su切换过去的 ,在某些环节可能 ...

  6. 对 Jenkins+ANT+Jmeter 接口测试的实践

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  7. Jenkins构建Maven聚合工程,指定构建子模块

    一.设置单独编译构建子模块 配置: 1.Root POM指向父pom.xml 2.Goals and options指定构建模块的参数: mvn -pl project1/project1-son - ...

  8. jenkins 插件执行shell命令时,提示“Command not found”处理方法

    首先提示找不到"Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具 ...

  9. Jenkins 插件 地址证书报错问题解决思路

    问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target ... ...

  10. Jenkins实现SVN+Maven+Java项目的持续集成

    Jenkins 2.46.1 Centos 7.3 JDK 7 安装jdk/maven/svn 在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量: export ...

最新文章

  1. Cap21_项目组合管理
  2. Task三个列子的分享
  3. [.NET] 建构子中传递子对象的对象
  4. Ubuntu更改鼠标灵敏度
  5. pve安装黑群晖直通硬盘_蜗牛星际装机教程篇三:手把手教你安装黑群晖NAS
  6. 初始化_Linux的内存初始化
  7. java 通过http post方式传参参数json 方式
  8. C++和C语言的区别是什么?
  9. Bugku杂项小猪佩奇思路
  10. MindManager 2020免费序列号激活下载及怎样运用思维导图进行头脑风暴教程
  11. Can't open /dev/sda3 exclusively. Mounted filesystem?解决办法
  12. 麻省理工大学公开课笔记:算法导论(一)——引言
  13. ROS——Gazebo仿真——全向轮小车——运动学模型分析
  14. lay和lied_lay和lie的区别
  15. 微信dat转码-微信数据库解密-dat批量查看
  16. 网站 被降权的四种处理方法
  17. 树莓派连接WiFi连不上
  18. 使用腾讯云轻量香港搭建rinetd端口转发服务实现SSH加速
  19. 【树状数组】【P5069】[Ynoi2015]纵使日薄西山
  20. ubootenv工具fw_printenv及配置文件fw_env.config

热门文章

  1. 研究生发论文是先有idea再做实验,还是先做实验再有idea?
  2. 企业微信、移动oa、移动社交crm全新解决方案隆重发布
  3. 深度学习总结:深层神经网络(tensorflow实战)
  4. Java实现图书管理系统(超详细解析)
  5. 与 AI 博弈:从 AlphaGo 到 MuZero(一)
  6. Android毛玻璃效果的实现(本文系转载一种快速毛玻璃虚化效果实现)
  7. 关于pyecharts各个全局配置项设置示例——个人内容整理与分享
  8. 三边形面积(海伦公式及拓展)
  9. R语言获取dataframe数据中某一数据列以某一特定字符串开头的数据行
  10. 【虫师Python】第二讲:元素定位