Jenkins小菜初次使用小记
title: Jenkins自动集成小记
Jenkins是用来自动构建任务的,也许你还不知道什么叫自动构建任务,它的意思是可以针对某个任务进行自动化,比如你开发的某个软件,每次写完代码提交到github之后,你可以设置让Jenkins自动进行打包构建发布包或者进行Units测试,发布报告,不用你每次手工在IDE中去Build,尤其是当打包非常繁琐的时候,用自动化构建可以极大的提高工作效率。
前言
公司是同事使用Jenkins做的自动化构建,非常方便,每次提交代码,自动检测打包是否成功,然后发送邮件通知,因为我们集成了findingbugs插件,在打包前还会对代码进行findingbus检索,告诉你findingbus的状态,还会生成release的发布包,非常之方便。
wement.io这个项目我想多人协作开发,自然想到了Jenkins,让大家能够配合的非常的舒服,昨天折腾了三小时,搞定了Jenkins,其中包括怎么创建一个任务,怎么设置github,和github的项目挂钩,怎么设置邮件通知。
安装Jenkins
直接去Jenkins官网下载war包,我这里是直接部署在阿里云的centos7上的,然后用scp xxx.war root@yourip:/home直接从本地拷贝到云服务器上,拷贝之后直接用java -jar xxx.war就可以运行成功了,如果你期望退出命令行还不关闭Jenkins的话,就用命令nohug java -jar xxx.war来运行包,java进程自动在后台运行了,关闭命令行窗口也不会退出程序,这样你的Jenkins就运行了,默认端口监听在8080,如果你也是用的云服务器,请确保你的8080端口是允许访问的。
当然,要运行Jenkins,你需要安装Java环境,如果你的代码仓库用git的话请安装git,分别命令如下:
yum install java
yum install git
还没有完,Jenkins运行成功了,你再在浏览器上打开yourip:8080跟随Jenkins安装向导,用默认提示安装完成即可,接下来就是创建任务了。
创建一个任务

选择第一性,构建一个自由风格的软件项目






然后保存即可,任务创建完成。但是如果你的项目是私有项目,你需要在你的服务器上生成ssh,然后贴到你的github上,这样做的目的是然github信任你的这个服务器,同时要注意你的Jenkins控制台,有可能要你输入ssh的证书密码。
邮件通知
一般来说这个时候右键通知是没问题的,但是我今天发现我提交代码之后,任务并没有自动构建,然后看Jenkins打的log是这样的:
22:23:55 [WARNING] mvn dependency:tree -Ddetail=true and the above output.
22:23:55 [WARNING] See http://maven.apache.org/plugins/maven-shade-plugin/
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 [INFO] BUILD SUCCESS
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 [INFO] Total time: 10.112s
22:23:56 [INFO] Finished at: Thu Aug 10 22:23:56 CST 2017
22:23:56 [INFO] Final Memory: 20M/59M
22:23:56 [INFO] ------------------------------------------------------------------------
22:23:56 Archiving artifacts
22:23:56 Email was triggered for: Always
22:23:56 Sending email for trigger: Always
22:23:56 Not sending mail to unregistered user chengming@testin.cn because your SCM claimed this was associated with a user ID ‘chengming' which your security realm does not recognize; you may need changes in your SCM plugin
22:23:56 An attempt to send an e-mail to empty list of recipients, ignored.
22:23:56 Finished: SUCCESS
意思是构建成功了,但是发送邮件发现提交代码的用户名是chengming而不是我在Jenkins中设置的cmlanche,然后Jenkins自动忽略了发送邮件的这个行为。
然后我在我的sourcetree中把提交代码的用户换回了cmlanche,任务自动构建,邮件发送成功!
Jenkins分享(一)小结
Jenkins是一个非常方便的工具,免费开源,推荐大家都来学习,都折腾下,对你以后大有好处。我其实也是刚刚学这个,知道的还不多,还需要花很多时间去折腾,有更新的收获我会慢慢分享出来。
欢迎加入我的Java栈群:518914410,讨论有关Java的一切技术。
Jenkins小菜初次使用小记的更多相关文章
- Jenkins部署net core小记
作为一个不熟悉linux命令的neter,在centos下玩Jenkins真的是一种折磨啊,但是痛并快乐着,最后还是把demo部署成功!写这篇文章是为了记录一下这次部署的流程,和心得体会. 网上很多资 ...
- [Jenkins]初次访问Jenkins,输入密码后,页面卡在空白界面一直未加载出内容_解决方案
问题描述 安装Jenkins,初次访问Jenkins(http://localhost:8002,端口号根据各自设置而不同,本例是8002),输入Jenkins初始化的管理密码之后,浏览器中一直卡在空 ...
- Jenkins初次启动卡住问题解决
Jenkins在初次使用时, 一直卡住, 无论如何也不出现输入用户名密码. 忘记截图, 下次出现更新图示. 解决方案: 需要你进入Jenkins的工作目录,打开 hudson.model.Update ...
- Jenkins+Tomcat+svn+maven自动化构建简单过程
搭建好jenkins自动化构建之后,点击立即构建,即可将svn服务器上的源码自动编译构建,并打成war包,然后将这个war包以及编译好的项目复制到指定服务器的tomcat容器里,当svn服务器的代码有 ...
- docker jenkins使用(二)
jenkins的安装很简单,但是jenkins的初次使用却很头疼.对于小白来说有点不太明白 背景: 开发更新app需要很多步骤,生成jar包.上传服务器.更新启动程序,如果有很多服务器,那么需要做好多 ...
- 集成 Jenkins 和 TestNG 实现自助式自动化测试平台
背景介绍 在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求.缩短的开发周期.频繁的部署上线.复杂的产品架构和团队组织,如何继续保证软件的质量是一 ...
- JENKINS系统的安装部署
JENKINS 安装使用文档 简介 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成,集成Jenkins可 ...
- CentOS 7.2安装Jenkins自动构建Git项目
1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...
- linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)
准备环境 jenkins.war包 ,jdk1.8 ,tomact , maven,git 1.Jenkins war包,下载地址https://jenkins.io/zh/download/ ...
随机推荐
- java数组降序排序之冒泡排序
import java.util.Arrays;//必须加载 class Demo{ public static void main(String []args){ int[] arr={3,54,4 ...
- 【Android Developers Training】 104. 接受地点更新
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- ajax数据请求4(xml格式)
ajax数据请求4(xml格式): <!doctype html> <html> <head> <meta charset="utf-8" ...
- for循环语句
for循环格式: for(表达式1:表达式2:表达式3) { 循环语句 } 1.首先计算表达式1的值. 2.再计算表达式2 的值,若值为真(非0) ...
- Unity 游戏框架搭建 (五) 简易消息机制
什么是消息机制? 23333333,让我先笑一会. 为什么用消息机制? 三个字,解!!!!耦!!!!合!!!!. 我的框架中的消息机制用例: 1.接收者 ``` using UnityEngine ...
- webpack教程(三)——热刷新
现在我们如果修改代码,需要重新打包,再一次在命令行下输入webpack命令,很麻烦. 热刷新是什么呢?就是我们该完代码保存之后webpack会自动打包引起浏览器自动刷新,你只需要把精力都专注在代码研发 ...
- 虚拟硬盘格式vdi、vhd、vmdk相互转换
Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢? 以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个 ...
- 【Mysql基本知识整理】
一.简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 2.关系型数据库 ...
- php接口加密
在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作. 下边简单介绍一下A ...
- 一个move_uploaded_file()引起的PHP异常与错误的深入理解
背景:我在公司开发一个产品Excel导入到数据库的功能,写起来挺快的,用phpexcel几下就写好了,本地测试挺顺的,git push上去,项目负责人部署到测试环境,就出现问题了.具体问题一句话不好说 ...