CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布

by:授客 QQ:1033553122

目录

一、    实践环境. 1

二、    安装SVN(如果没的话) 1

三、    安装java 1

四、    安装Apache Tomcat 2

五、    安装maven 5

六、    安装jenkins 6

七、    Jenkins基本设置. 7

1)系统管理-系统设置. 7

2)系统管理-安全设置. 8

3)系统管理-插件管理. 9

八、    自动构建任务与自动部署. 11

一、实践环境

CentOS 7操作系统(CentOS-7-x86_64-DVD-1503-01.iso)

下载地址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/

下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Apache Tomcat(apache-tomcat-9.0.0.M1.tar.gz)

下载地址:http://tomcat.apache.org/download-90.cgi

maven(apache-maven-3.3.9-bin.tar.gz)

下载地址:http://maven.apache.org/download.cgi

jenkins(jenkins.war)

下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Deploy to container Plugin(deploy-1.0.phi)

下载地址:https://updates.jenkins-ci.org/download/plugins/deploy/

以上软件包集合下载地址:http://pan.baidu.com/s/1c1xnUfu

二、安装SVN(如果没的话)

参考文章:CentOS7 下配置svn的安装及基础配置介绍

三、安装java

[root@localhost tmp]# mkdir -p /usr/local/java

[root@localhost tmp]# mv jdk-8u65-linux-x64.tar.gz /usr/local/java

[root@localhost tmp]#cd /usr/local/java/

[root@localhost java]#tar -xvzf jdk-8u65-linux-x64.tar.gz

……

[root@localhost java]# rm -rf jdk-8u65-linux-x64.tar.gz

环境变量配置

[root@localhost java]# vim /etc/profile

添加如下内容:

#added by shouke

export JAVA_HOME=/usr/local/java/jdk1.8.0_65

export JRE_HOME=/usr/local/java/jdk1.8.0_65/jre

CLASSPATH=.:$JAVA_HOME/lib/dr.jar:$JAVA_HOME/lib/tools.jar:

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

[root@localhost bin]#
source /etc/profile

查看是否安装成功

[root@localhost java]#
java
-version

java version
"1.8.0_65"

SE
Runtime Environment (build 1.8.0_65-b17)

Java
HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed
mode)

[root@localhost
java]#javac
-version

javac
1.8.0_65

参考连接:

http://docs.oracle.com/javase/8/docs/technotes/guides/install/linux_jdk.html#BJFJJEFG


四、
安装Apache
Tomcat

[root@localhost
tmp]#tar
-xvzf apache-tomcat-9.0.0.M1.tar.gz

……

[root@localhost tmp]#
mkdir
-p /usr/local/apache-tomcat

[root@localhost tmp]#
mv
apache-tomcat-9.0.0.M1 /usr/local/apache-tomcat/

环境变量配置:

[root@localhost java]# vim
/etc/profile

……

#added by
shouke

export
JAVA_HOME=/usr/local/java/jdk1.8.0_65

export
JRE_HOME=/usr/local/java/jdk1.8.0_65/jre

export
CATALINA_BASE=/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

export
CATALINA_HOME=/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

CLASSPATH=.:$JAVA_HOME/lib/dr.jar:$JAVA_HOME/lib/tools.jar:

export
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE:$CATALINA_HOME

[root@localhost bin]#
source /etc/profile

设置管理员帐号密码

[root@localhost
apache-tomcat-9.0.0.M1]# ls

bin  conf  lib  LICENSE  logs  NOTICE 
RELEASE-NOTES 
RUNNING.txt 
temp 
webapps 
work

[root@localhost
apache-tomcat-9.0.0.M1]# cd conf/

[root@localhost conf]# vim
tomcat-users.xml

找到如下内容

在其下新增用户和角色

问题:怎么知道角色是啥角色呢?
如下,点击对应按钮,点击取消,

如下,它会告诉你怎么做的

可根据实际情况设置,修改后的文件配置如下

说明:admin用户可以访问Server
Status,Manager
App,

Host Manager

, hostadmin只可访问Host
Manager

启动Apache
Tomcat

[root@localhost tmp]# cd
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/

[root@localhost
apache-tomcat-9.0.0.M1]# cd bin

[root@localhost bin]#
sh
startup.sh

Using
CATALINA_BASE:  
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

Using
CATALINA_HOME:  
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

Using
CATALINA_TMPDIR:
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/temp

Using
JRE_HOME:       
/usr/local/java/jdk1.8.0_65/jre

Using
CLASSPATH:    
  /usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/bin/bootstrap.jar:/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/bin/tomcat-juli.jar

Tomcat
started.

[root@localhost
bin]#

防火墙开放默认的8080端口

[root@localhost
bin]#firewall-cmd
--permanent --zone=public --add-port=8080/tcp

success

[root@localhost
bin]#firewall-cmd
--reload

访问测试

 


五、
安装maven

[root@localhost tmp]#
mkdir
-p /usr/local/maven

[root@localhost tmp]#
tar
-xvzf 
apache-maven-3.3.9-bin.tar.gz

……

[root@localhost tmp]#
mv
apache-maven-3.3.9 /usr/local/maven/

环境变量设置

[root@localhost
tmp]#vim
/etc/profile

export
JAVA_HOME=/usr/local/java/jdk1.8.0_65

export
JRE_HOME=/usr/local/java/jdk1.8.0_65/jre

export
CATALINA_BASE=/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

export
CATALINA_HOME=/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1

export MAVEN_HOME=/usr/local/maven/apache-maven-3.3.9

CLASSPATH=.:$JAVA_HOME/lib/dr.jar:$JAVA_HOME/lib/tools.jar:

export
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE:$CATALINA_HOME:$MAVEN_HOME/bin

[root@localhost tmp]#
source /etc/profile

查看是否安装成功

[root@localhost tmp]# mvn
-v

Apache Maven
3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5;
2015-11-11T00:41:47+08:00)

Maven home:
/usr/local/maven/apache-maven-3.3.9

Java
version: 1.8.0_65, vendor: Oracle Corporation

Java home:
/usr/local/java/jdk1.8.0_65/jre

Default
locale: en_US, platform encoding: UTF-8

OS name:
"linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family:
"unix"

参考连接:http://maven.apache.org/install.html

 


六、
安装jenkins

[root@localhost tmp]#
ls

jenkins.war

[root@localhost tmp]#
cp
jenkins.war 
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/webapps/

重启apache
tomcat服务器

[root@localhost bin]# sh
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/bin/shutdown.sh

[root@localhost bin]# sh sh
/usr/local/apache-tomcat/apache-tomcat-9.0.0.M1/bin/startup.sh

 

访问jenkins


七、
Jenkins基本设置

1)系统管理-系统设置

2)系统管理-安全设置

提交后如下

注册并登陆

3)系统管理-插件管理

1)Deploy
to container Plugin

安装方法1、在线安装

系统管理->管理插件->可选插件->过滤,输入Deploy
to container Plugin,

缺点:可能无法下载,GFW太强大了

安装方法2、本地安装

下载插件,插件集合下载地址:

https://updates.jenkins-ci.org/download/plugins

Deploy to
container Plugin下载地址:

https://updates.jenkins-ci.org/download/plugins/deploy/

系统管理->管理插件->高级->上传插件->浏览,打开.phi插件->上传

查看是否安装成功


八、
自动构建任务与自动部署

点击
【新建】、【创建一个新任务】(从未创建过任务的情况)

如上图,填写好item名称,点击【OK】

代码结构如下:

选择Subversion,填写版本库代码url

如上,提示No
credential,点击
enter
credential,打开如下界面

如上,填写代码库所在url及用户名称和密码,点击【OK】提交

返回到刚才的页面,刷新,重新填写,结果如下

构建触发器

说明:

1)Poll
SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

2)Build
periodically:按给定周期,定时构建(它不管源码是否发生变化)

示例:

*/60 * * *
*

(意为每60分钟检查一次源码变化)

0 2 * *
*

(每天2:00
执行一次构建)

这里和linux
crontab文件配置是一致的。

参考连接:

http://www.scmgalaxy.com/scm/setting-up-the-cron-jobs-in-jenkins-using-build-periodically-scheduling-the-jenins-job.html

[root@localhost
workspace]# pwd

/root/.jenkins/jobs/test_project1/workspace

[root@localhost workspace]#
ll

total
56

-rw-r-----. 1 root root 16629 Dec 20 17:21 pom.xml

-rw-r-----.
1 root root 
3235 Dec 20 17:21 readme.txt

drwxr-x---.
2 root root 
4096 Dec 20 17:21 review

drwxr-x---.
4 root root 
4096 Dec 20 17:21 src

drwxr-x---.
8 root root 
4096 Dec 20 17:21 target

-rw-r-----.
1 root root 16664 Dec 20 17:21
版本变更记录.txt

注意:这里的pom设置是有讲究的,参考连接:

http://my.oschina.net/u/260244/blog/318755#OSC_h3_16

如上,Post
steps,选择仅build成功时才运行Post
Steps

如上,点击【增加构建后操作步骤】,选择Deploy war/ear to a
container,设置远程发布项目

说明:

1)
构建时会在目录:/root/.jenkins/jobs/item_name/workspace/target下生成filename.war文件,本例中为:

/root/.jenkins/jobs/test_project1/workspace/target/appServer.war

2) WAR/EAR files:填写.war、.ear文件所在的相对路径

3) Context Path:填写要发布至远程服务器的位置,通常是tomcat的webapps

4)
通常不勾选【Deploy
on failure】,即构建失败则不发布

5)
这里也可以用Publish
over SSH来实现远程发布,参考连接:

http://jdkleo.iteye.com/blog/2159844

如上,点击 Add
Contianer,可以选择容器类型,这里选择Tomcat
7.x,然后填写入Tomcat

管理员(具有manager-gui角色的tomcat用户),密码,Tomcat连接

最后提交,如下



如下,点击右侧按钮,开始第一次构建

点击连接查看Console Output

如下,第一次会根据pom.xml下载相关文件

附pdf版本下载:

CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布.pdf

Linux CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布的更多相关文章

  1. Linux centos7 下 svn 服务器搭建

    摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...

  2. Linux CentOS下安装Tomcat9

    本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...

  3. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  4. Linux(CentOS7)下配置多个tomcat

    记录 Linux(CentOS7) 下配置多个 tomcat 的操作过程. 一.下载tomcat 前提:安装配置好jdk环境,未配置可参考Linux(CentOS7)下安装jdk1.8. 从 tomc ...

  5. Linux(CentOS7)下安装jdk1.8

    Linux(CentOS7) 下安装 jdk1.8 操作过程. 一.检查是否自带jdk rpm -qa|grep java 如果存在则用下面命令删除,xxx yyy zzz代表查询出来的自带jdk名称 ...

  6. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  7. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  8. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  9. linux系统下svn服务器操作命令

    linux系统下svn服务器操作命令 .输出指定文件或URL的内容.  svncat 目标[@版本]…如果指定了版本,将从指定的版本开始查找. svncat -r PREV filename > ...

随机推荐

  1. vue教程2-05 v-for循环 重复数据无法添加问题 加track-by='索引'

    vue教程2-05 v-for循环 重复数据无法添加问题  加track-by='索引' 解决问题的代码示例: <!DOCTYPE html> <html lang="en ...

  2. Shell 常用的命令

    ls功能:列出目录内容常用选项:-a 显示所有文件,包括隐藏的-l 长格式列出信息-i 显示文件 inode 号-t 按修改时间排序-r 按修改时间倒序排序-h 打印易读大小单位 2 echo功能:打 ...

  3. Elasticsearch聚合 Date Histogram聚合

    转 http://www.cnblogs.com/xing901022/p/4951603.html Elasticsearch的聚合主要分成两大类:metric和bucket,2.0中新增了pipe ...

  4. Javac中对import关键字进行的处理

    参考文章: (1)关于类的符号输入过程第二篇 ImportScope中存储的为ImportEntry,继承了Scope.Entry类并且多定义了个origin属性,也就是符号的最终来源.除此之外还对g ...

  5. PHP之高性能I/O框架:Libevent(二)

    Event扩展 Event可以认为是替代libevent最好的扩展,因为libevent已经很久不更新了,而Event一直在更新,而且Event支持更多特性,使用起来也比libevent简单. Eve ...

  6. 使用GMap.NET类库,实现地图轨迹回放。(WPF版)

    前言 实现轨迹回放,GMap.NET有对应的类GMapRoute.这个类函数很少,功能有限,只能实现简单的轨迹回放.要实现更复杂的轨迹回放,就需要自己动手了. 本文介绍一种方法,可以实现复杂的轨迹回放 ...

  7. tomcat 的自问自答与总结

    目录 1 tomcat 的加载问题,启动后更新是否自动加载 2 tomcat 的context.xml 文件读取顺序与覆盖原则 3 就是 建议的tomcat 配置 4 避免二次部署加载的问题 在查看了 ...

  8. C#数据仓储类

    https://ninesky.codeplex.com/SourceControl/latest /*============================== 版本:v0.1 创建:2016.2 ...

  9. 如何替代即将淘汰的Flash方案?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由MarsBoy发表于云+社区专栏 | 导语 Web技术飞速发展的如今,我们在感受新技术带来的便捷和喜悦的同时,也时常在考虑着一个问题: ...

  10. redis使用watch秒杀抢购思路

    1.使用watch,采用乐观锁 2.不使用悲观锁,因为等待时间非常长,响应慢 3.不使用队列,因为并发量会让队列内存瞬间升高 测试代码: import java.util.concurrent.Exe ...