专栏首页Laoqi's Linux运维专列Centos 7 Java配置maven+jenkins+git(svn)+tomcat自动编译和部署(持续集成)

Centos 7 Java配置maven+jenkins+git(svn)+tomcat自动编译和部署(持续集成)

目的

在开发中,需要经常频繁的对测试服务器进行部署,而且在多人协同中开发经常遇到的问题就是别人更新了他的代码,而你去更新你的代码时并没有更新到别人的代码,导致测试环境的代码不是最新,当然这个问题也好解决,那就是每次更新的时候先获取版本控制器上面的代码,然后更新,当然每次这样操作都是耗时耗力的,如果是整个项目更新,一般项目至少3、40M上传到服务器也需要一定的时间,而部分更新,也需要找到指定的文件或者整个代码覆盖,然后重启服务器(Tomcat里面直接覆盖class虽然可以配置热加载,但是容易内存溢出),就我工作中的情况而言,是每次都需要先把代码上传到服务器-解压-找到Tomcat进程id(Linux)-kill线程-启动Tomcat,每次下来就需要最少几分钟时间,而且每天有可能多次部署,所以对整个工作效率是有一定影响的。正是因为以上种种,所以才有了本文,而本文最终的结果就是一旦代码上传到Git或者svn的时候,代码能自动部署到服务器上面去,这样我们就只需要吧正确的代码提交的版本控制器,就不用理会服务器的更新了

jenkins部署

  • Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
  • Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
    • 1、持续的软件版本发布/测试项目。
    • 2、监控外部调用执行的工作。
  • Jenkins能做的东西有很多,不过本文只介绍一个简单的自动编译打包部署,首先下载Jenkins,推荐下载war包, 下载地址:下载主页

基础准备:

配置jdk+tomcat

关闭selinux 以及 firewall 服务。

本文是基于Centos 7,war环境部署的,把下载好的war文件直接放到Tomcat中,然后启动Tomcat,启动成功后访问tomcat的jenkins项目如:

war包下载

http://192.168.96.129:8080/jenkins 会看到以下界面:

注意红色框中的红色文字,那个是初始密码的路径,直接根据路径找到initialAdminPassword文件并打开,把密码复制出来,输入到页面中点击continue按钮,进入下一步: ( /root/.jenkins/secrets/initialAdminPassword )

Jenkins拥有很多插件,一般在开始我们并不清楚需要什么插件的时候,可以选择自定义安装,把所有基本的插件全部安装好,此页面第一个按钮是安装推荐插件,第二个是自己选择安装,这里我选择第二个按钮。

此界面是初始化安装插件的界面,先选择All插件,然后点击install

在这个界面需要多等一下,因为是在网上下载插件,而且是外国的网站,所以经常有下载失败的情况,最好打开V梯P子N,当所有插件安装完成后会有continue按钮出现,如果没有则刷新一下页面,当然也可能存在有插件安装失败,根据自己是否需要自行选择retry或continue,这里因为我的都已经安装完成了,所以进入到了下一个页面.

在此页面设置用户名和密码,记得点击save and finish按钮,如果选择了Continue as admin,会把用户名重置admin,然后密码也是你设置的密码,而是初始化文件中的密码,设置完成之后的页面.

点击Start using Jenkins 即可

Jenkins主界面

配置Jenkins

创建项目之前先要对Jenkins进行基本的配置,比如jdk的目录,git命令的目录和maven的目录等等

首先点击 系统管理

进入管理页面后如图:

点击 Global Tool Configuration 进入插件配置页面

配置jdk

(不晓得安装位置,好办,打开 vim /etc/profile 就可以找到!)

点击新增JDK按钮,会显示jdk配置form,如果电脑上已经安装了jdk则可以去掉自动安装,不过如果是用Tomcat运行的Jenkins那么是肯定已经安装了的,这里我们只需要配置好 jdk别名JAVA_HOME 即可

配置git

需要将git的正确路径配置到Path to Git executable中。

配置maven

跟jdk相同,配置好名字和路径即可,当然也可以选择自动安装,不过还是推荐手动安装然后配置,配置好了之后点击save即可

当然还有现在很火的Gradle (有空写个教程,在此,我没有配置)

安装插件

由于新版默认没有将war部署到Tomcat的插件,所以需要手动安装,在系统管理中选择管理插件,再选择可选插件,搜索 Deploy to Container Plugin ,然后勾选点击直接安装

创建Jenkins任务

点击开始创建一个新任务进入任务创建页面:

先输入项目名字,然后选择构建一个maven项目,最后点击ok按钮

选择版本控制器

页面中找到源码管理模块,根据项目使用的版本控制器选择,如我们使用的git,则选择git

选择构建触发器

如果是git的话,可以直接通过GitLab(WebHooks)来实现触发,这样你每次提交到配置编译的分支就会git就会通知,不过目前我知道的是git.oschina.NET的钩子没有作用,当然如果不是git或者钩子没有作用的时候,可以用最简单的,定时查询。

这样是每10分钟查询一次,如果有更新就构建,具体Poll SCM的参数可以百度,那里更加详细

配置编译命令

编译命令我们可以直接配置最简单的命令编译:

选择Execute shell,在出来的界面中配置maven命令就行了,比如

mvn install

配置部署到Tomcat

点击新增构建后操作,选择 Deploy war/ear to a container ,然后配置 WAR/EAR files ,这个war的地址,一般都 target/xxx.war ,xxx是war的文件名。

然后点击Add Container,添加Tomcat服务器:

配置好Tomcat的管理员用户和密码以及Tomcat的访问地址就ok了,这样只要你上传了代码,并且是配置编译的分支,一般过几分钟就会自动编译然后部署到Tomcat中了,当然最好还是用git,然后通过GitLab实现,这样不仅不用每隔几分钟查询一次,而且延迟很小!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 搭建 GIT 服务器

    下载安装 git Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 此实验以 CentOS 7.2 x64 的系统为环境,搭...

    老七Linux
  • Cron,Chkconfig,Systemd,Target

    Cron : # cat /etc/crontab //查看设置任务计划的(配置文件)格式 #crontab -e //自定义计划内容 0 3 * * * /b...

    老七Linux
  • 部署Java项目(Ⅰ)

    老七Linux
  • TeamCity VS Jenkins:选择正确的CI / CD工具

    每个软件开发周期都涉及三个主要阶段:构建,测试和部署。这三个阶段中的任何一个滞后都会导致产品发布的延迟。为了避免此类延迟,组织依靠CI / CD工具来自动化这些...

    用户7466307
  • 深度学习算法优化背景知识---指数加权平均

    用户1631856
  • 机器人如何进行速度倍率的调节?

    用户在示教机器人轨迹时,往往会不断的调节机器人的速度倍率。这时就需要不断地去按速度倍率调节键(速度倍率+%键和速度倍率-%键 )。如何进行速度倍率的调节,如何进...

    机器人网
  • elasticsearch-head 安装

    我直接使用的是我公网地址绑定好的域名:ergouzi.fun。此文件内容较多,我是把这个 js 下载到本地后修改了再上传回服务器的。修改后查看是否修改成功:

    微风-- 轻许--
  • 一根烟上热搜,先让AI看看你的肺

    作者 | 李翔,国内某互联网大厂AI民工,前携程酒店图像技术负责人,计算机视觉和深度学习重度爱好者,在ICCV和CVPR等会议上发表论文十余篇;马杰超,任职于某...

    AI科技大本营
  • 用python加载3ds max场景设置

    py3study
  • Android中aapt命令实践

    朋友要查看一个已存在包的versionCode信息,在群里面询问,由于是已经存在的apk包,并且只需要其中的versionCode信息,笔者就给发了一段aapt...

    砸漏

扫码关注云+社区

领取腾讯云代金券