jenkins+svn+maven+tomcat一键构建部署

    xiaoxiao2021-04-16  33

    1背景 这是这种多人协同开发,自动构建,自动部署的方案。就不用自己打包,然后上传部署了,解放人力,便于管理。这里只是简单介绍各自软件的使用与集成,其实不论svn和maven还有很多实用的用法,svn的管理规划,maven的仓库等。 svn用来做代码版本管理,maven用来编译,tomcat是web容器,jenkins是自动化构建的工具。这里没使用nginx来做方向代理,以后做 软件版本 jdk1.8 tomcat8-部署jenkins,端口8080 tomcat7-部署应用web项目,端口8090 jenkins2.46 maven3.5

    2安装jenkins 2.1安装jdk 官网下载,解压,改名,修改配置文件,最后使用java -version验证,非常简单。不过多描述

    2.2安装tomcat8 官网下载,解压,改名

    2.3安装jenkins 然后把jenkins的war放入tomcat的webapp(/home/tomcat8/webapps),然后启动tomcat /home/tomcat8/bin/startup.sh

    2.4修改防火墙,开通8080端口 vim /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT 重启防火墙service iptables restart 访问url http://192.168.247.141:8080/jenkins/ 这里按照他的提示,进行密码验证。 more /root/.jenkins/secrets/initialAdminPassword 下面安装插件

    选择插件,就安装推荐的吧 然后是慢长的等待,然后输入用户名和密码 这里wangqi,wangqi,444687196@qq.com 插件安装完成之后

    2.5自己安装插件 安装SSH Slaves plugin(运行shell命令),Maven Integration plugin(构建maven项目), Deploy to container Plugin(部署应用web)。 在jenkins的系统管理-插件管理-可选插件中可以选择

    3安装svn 3.1查是否已经安装svn rpm -qa subversion 如果已经安装,请删除yum remove subversion

    3.2yum安装 yum install subversion mkdir /home/svn/game svnadmin create /home/svn/game cd /home/svn/game ll conf目录是配置文件,db目录就是放置各个版本的代码(加密) 3.3规划svn与配置svn 规划: 策划组:开策划、美术读写 后端组:开后端读写,策划只读 前端组:开前端读写,策划、美术只读 美术组:开美术读写,策划只读 管理员组:所有的读写

    权限配置 vim /home/svn/game/conf/authz rw的含义是读写

    [game:/server] @server=rw 这个含义是server用户可以多svn的game下面的server目录有读写权限

    [groups] #管理组 manager = boss #服务端用户组 server = server1,server2 #客户端用户组 client = client1,client2 #美术组 art = art1,art2 #策划组 design=design1,design2 [game:/] @manager=rw [game:/server] @server=rw [game:/client] @client=rw @design=r @art=r [game:/art] @design=rw @art=rw @client=r [game:/design] @design=rw @server=r @client=r @art=r

    修改用户密码 vim /home/svn/game/conf/passwd

    [users] boss=123456 server1=123456 server2=123456 client1=123456 client2=123456 art1=123456 art2=123456 design1=123456 design2=123456

    修改svn服务 vim /home/svn/game/conf/svnserve.conf

    auth-access = write anon-access = read password-db = passwd authz-db = authz realm =game

    防火墙开发svn端口 vim /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 3690 -j ACCEPT

    service iptables restart

    3.4启动svn服务 svnserve -d -r /home/svn/ -d:守护进程 -r:svn根目录 假设服务端IP为192.168.247.141,那么如下设置后game的访问目录就为: svn://192.168.247.141/game

    svn客户端使用乌龟(tortoise svn安装直接下一步),找一个目录checkout,如果成功svn就安装成功。

    4安装maven 从 http://maven.apache.org/ 下载

    解压,改名 tar -zxvf apache-maven-3.5.0-bin.tar.gz rm -rf apache-maven-3.5.0-bin.tar.gz mv apache-maven-3.5.0/ maven3.5

    配置环境变量 vim /etc/profile

    M2_HOME=/home/maven3.5 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin

    修改maven的配置,vim settings.xml

    <localRepository>/home/maven3.5/jar</localRepository>

    然后把自己的maven的jar拷贝到jar中,不然的会,会重新下载 基础的软件已经准备好了。

    5 spring tool suit 我是使用spring tools suit编写代码,这里通过help-install已经安装了svn的插件哈。 右键项目-temp-shareproject-选择svn 然后填写svn连接,账户,密码,就可以上传去了。安装提示一步一步走就可以了。

    上传svn成功之后,项目就会出现如图的连接,说明代码已经被svn管理了。

    6使用jenkins构建部署web应用 6.2新建一个job 这里选择自由风格,项目名nsfw-server

    然后配置这个job 6.2配置job的svn 配置svn,这里特别注意svn的路径,需要指定到项目名哈 这里使用svn的boss用户,boss用户具有所有目录的读写权限

    6.3构建计划 每晚8点运行,时间自己改哈,配置方式和crontab的一样

    6.4构建环境 这里需要先source /etc/profile,不然不能使用mvn命令(我这里确实是这样),这里的ssh(需要先装ssh插件哈),需要在系统配置

    6.5构建方式 构建方式选择invoke top-level maven targets。 goals是maven命令,setting是maven的配置路径 clean install的意思是删除以前编译过的target,然后重新编译生成war

    6.6自动部署到web容器 war路径是相对于jenkins的workspace目录的相对路径 我的全路径:/root/.jenkins/workspace/nsfw-server/nsfw-server/target/nsfw-server.war / 代表的是会把crm.adminWeb.war 换成ROOT.war放到 tomcat的webapps目录. /nsfw-server,不是在root目录,就是webapp下面的就好 tomcat的信息主要是用户名和密码(来自tomcat-users.xml)。 jenkins好像支持tomcat7的部署 这里插播一个tomcat7的安装,这里主要配置一个tomcat-userx.xml。

    <role rolename="manager-gui"/> <user username="wangqi" password="wangqi" roles="manager-gui"/>

    使用这个wangqi用户,可以执行部署命令就可以。

    job的配置已经完成

    6.7执行构建 手动执行构建

    下面的那个小圆点,就可以看执行的日志。 从日志中可以看出,已经mvn编译出来了war包,然后部署到了tomcat服务器,最后finished:success。

    查看tomcat的是否部署完成

    访问http://192.168.247.141:8090/nsfw-server/pic/upIndex,成功 自动化构建成功。

    ps: 1如果mvv -s * clean install,能在机器上运行,但是jenkins不能运行,那么一定是环境变量的问题,使用在构建之前使用source /etc/profile 2如果你修改了svn的代码,上传之后,马上执行构建可能会不成功,因为svn版本没有同步,过一会就可了,就几分钟。

    转载请注明原文地址: https://ju.6miu.com/read-673104.html

    最新回复(0)