首先jenkins是基于java开发的一种持续集成工具,它的存在和实际应用使得我们在开发过程中节省了很多宝贵时间,既然基于java,所以java环境是必须的。

其次Tomcat是针对Java的一个开源中间件服务器(容器),基于Java Web的项目需要借助Tomcat 才能运行起来。

安装java环境和tomcat的过程就不在这里赘述了,值得注意的是,Jenkins,java,tomcat三者的版本要尽量吻合,不要相差太远,例如如果tomcat用的6.0,java最好不要使用版本9.0以上或者更高的。

安装 Jenkins    Jenkins官方网站:https://jenkins.io/,注意:实际在大型项目中jenkins服务一般都存在于专用的Linux服务器上。博主实际开发用的windowsOS,为了节省开发时间提升开发效率,所以这里的安装过程是在windowsOS上的,但实际的配置和应用方法是一样的。

通过上面的Jenkins官网进行下载安装Jenkins,启动服务会提示输入password,进入提示的密钥目录复制密码即可,之后jenkins会开始安装各种主流插件。需要一些时间… 最后一步配置,创建第一个管理员账号。最终即可进入jenkins的主页。

Jenkins的操作界面十分友好,有基础开发经验的人很容易上手配置。这里简单的进行配图解释一下:

进入系统管理可以看到如下选项:

进入系统设置:

可以看到一些基本的配置选项:例如maven的配置;远程服务的配置,这里举出了两个配置的例子,具体开发中可能不同服务的协议和连接方式不通,我们可以根据具体的开发环境在Jenkins上选择并安装指定插件即可,下面也会讲到简单的插件安装。

插件管理同样在系统设置中进行配置管理:


可以清楚的看到可更新,可选插件,已安装插件。同样在高级配置里还可以配置代理服务,上传插件,和升级站点。博主这里后安装的两个插件已在上图中标出。通过上图插件的功能可以完成静态代码检查操作,实际的项目开发流水线中的核心代码,静态检查等配置也是应用的这些功能。下面以实际项目案例进行举例:
新建maven项目,博主的配置基本如下,具体执行操作可能要结合bash或者shell脚本完成,所以需要简单的编写linux执行脚本能力,下面给出简单的脚本示例:


服务器端脚本:

文件处理脚本:

#! /usr/bin/expect

spawn sudo su – #切换到超级管理员以进行文件操作

expect "*#"

send "sudo pkill -9 java\r" #杀掉原有java进行

expect "*#"

send "sudo mv -f /home/liangxuezhi/cdnportal.jar /usr/local/CdnPortal/cdnportal.jar\r"

expect "*#"

send "su liangxuezhi\r" #由于脚本执行java会导致切换用户的文件读入权限问题所以切回原用户执行脚本

expect "*#"

send "/usr/local/CdnPortal/run.sh\r" #执行新脚本

expect "*#"

send "tail -f /home/liangxuezhi/nohup.out\r" #查看命令

set timeout 300000

expect "*BootApplication使用的profile为:test" #命令终止符

执行服务脚本:

nohup /usr/local/java/jdk1.8.0_161/bin/java -jar /usr/local/CdnPortal/cdnportal.jar & #后台启动java包服务

如果想要看到项目的静态代码检查信息可以做如下配置,注意maven打包命令和pom文件中的配置一致,配置完成之后点击部署即会看到类似下图的效果:

本次博文到这里就结束了,整体来说jenkins的配置并不难,可能企业中偏向于将这部分工作交由运维管理。但是当在我们实际开发过程中,作为一个后台开发也可以在开发环境自己本机结合svn或者git,maven这些配置达到提升我们的开发效率。希望本篇文章对于新接触的同行朋友有所帮助,感谢您看到这里。

Jenkins自动化部署及代码检查配置应用的更多相关文章

  1. Jenkins中部署Sonar代码检查

    1 安装并启动sonarqube docker pull sonarqube:7.5-community docker run \ --name sonarqube \ --network ci \ ...

  2. Jenkins自动化部署代码

    通过jenkins自动化部署项目代码可以大幅度节省打包上传部署的时间,提高开发测试的工作效率 ========== 完美的分割线 =========== 1.Jenkins是什么 1)Jenkins是 ...

  3. Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  4. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  5. Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)

    jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...

  6. Jenkins自动化部署入门详细教程

    大纲 1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试: 或者前后端分离后,经常会修改接口,然后重新部署 ...

  7. Jenkins 自动化部署上线

    转载于互联网 jenkins自动化部署项目,通过jenkins 部署来节省运维时间,不需要手动cp上线及版本发布 Jenkins 自动化部署上线 Jenkins Jenkins 自动化部署上线一.Je ...

  8. AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署

    一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...

  9. Windows环境下实现Jenkins自动化部署

    详见:https://blog.csdn.net/Try_harder_every_day/article/details/79170065 Jenkins自动化部署: 几条具体的思路:1.开发人员将 ...

随机推荐

  1. PAT 天梯赛 L1-029. 是不是太胖了 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-029 AC代码 #include <iostream> #include <cstdio&g ...

  2. asp.net IRequiresSessionState

    在一般处理程序中,使用context.Session对象,必须先继承IRequiresSessionState接口. System.Web.SessionState.IRequiresSessionS ...

  3. Safari通过JavaScript获取系统语言

      IE6 IE7 IE8 Firefox Chrome Safari Opera navigator.language undefined zh-CN zh-CN navigator.userLan ...

  4. Java泛型详解(转)

    文章转自  importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理 ...

  5. vuex的 例子

    最近在学习vuejs,一直有听说vuex,用来实现多组件共享的一种状态管理模式,但是网上都说,不要为了用vuex而用vuex,大概意思就是尽量少用vuex,一些小项目可以用bus来实现组件之间的传值问 ...

  6. Array.asList:数组转list

    String s[]={"aa","bb","cc"}; List<String> sList=Arrays.asList(s) ...

  7. Android开发BUG及解决方法1

    错误描述: 问题1: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.Android. ...

  8. vue项目的webpack设置请求模拟数据的接口方法

    最近在跟着视频写饿了吗vue项目,其中模拟数据由于webpack版本变化,跟视频中不一致,下方博客有解决方案,其实视频里面的还能看懂,现在webpack的服务都在插件包里了,好难找. 请参考:http ...

  9. 20145240 《Java程序设计》第六周学习总结

    20145240 <Java程序设计>第六周学习总结 教材学习内容总结 InputStream与OutputStream 10.1.1串流设计的概念 Java将输入/输出抽象化为串流,数据 ...

  10. 写时拷贝(Copy On Write)方案详解

    本文旨在通过对 写时拷贝 的四个方案(Copy On Write)分析,让大家明白写时拷贝的实现及原理. 关于浅拷贝与深拷贝,我在之前的博客中已经阐述过了  浅拷贝容易出现指针悬挂的问题,深拷贝效率低 ...