随着springboot+springcloud(dubbo)越来越多人使用,流行的微服务的概念越来越深入人心。分布式部署越来越复杂,给手动发布带来很大工作量。为了方便前期测试和后期线上部署更新,可使用Jenkins作为持续集成工具。

  mac下开发推荐使用homebrew管理软件包,使用方法可查考之前homebrew的安装方法。该步骤下默认maven和git都已安装好。

  1. 下载jenkins

  mac下:推荐使用命令brew install jenkins,或者直接到jenkins官网下载

brew install jenkins

  linux下:

 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
sudo service jenkins start //启动jenkins服务

  2. mac下载完后,进入jenkins/libexec目录下可以看到jenkins.war文件,我的路径是/usr/local/homebrew/Cellar/jenkins/2.141/libexec。直接调用 java -jar jenkins.war也能直接运行默认端口好像也是8080。

java -jar jenkins.war --httpPort=8080

  3. 访问localhost:8080,即可打开管理页面,首次访问需找到initialAdminPassword中的密码填入即可。

  4. 初始化点击intsall suggested plugins安装默认的插件

  5. 创建用户,配置git、maven、jdk等插件信息

  

   1)maven配置

    

  

  2)jdk配置

  

  6. 创建任务,从git里拉取文件

  

  7. 设置构建期间maven命令,可指定多个命令。

  

  8. 编写shell命令,启动jar程序(war文件也是同理)。相关命令一并提供,可按需修改。

  

  stop.sh

#!/bin/bash

PID=$(ps -ef | grep system.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi

  replace.sh

#!/bin/bash

# 先判断文件是否存在,如果存在,则备份
file="/usr/local/auto_programs/system/system.jar"
source_path="/Users/chenlili/.jenkins/workspace/happy-mall/system/target"
echo replace is beginning
if [ -f "$file" ]
then
echo backup is beginning
cp $file /usr/local/auto_programs/system/backup/system-`date +%Y%m%d%H%M%S`.jar
fi
cp $source_path/system.jar $file

  start.sh

#!/bin/bash

JVM="-Xms100m -Xmx520m"
Log="/usr/local/auto_programs/system/logs/system-api.log"
output="/usr/local/auto_programs/system/logs/output" java $JVM -jar /usr/local/auto_programs/system/system.jar >$output 2>&1
tail -f $Log

  这里解释一下为何不在start.sh用nohup方式启动,因为痛过jenkins的shell命令启动此方法不生效。我没看过源码,但我猜测是jenkins的shell进程控制着start.sh的线程,当shell关闭后线程也会关闭。因为在jenkins的shell命令里设置nohup可保证start.sh进入后台执行。同时BUILD_ID=dontKillMe是设置返回值通知jenkins命令已执行,不然jenkins会一直空转不能正常结束任务。

  1)假如大家要分布式部署的话,可通过ssh的方式无密钥访问.

  提供一种简单的方式:jenkins的maven编译完成->执行shell命令->shell里将各个jar包分配到相应的机器上->在执行想要的启动命令。

  2)假如工程项目的根目录下有多个工程,可通过jenkins配置多个任务,在maven里配置编译需要的工程。

  3)jenkins也支持docker

mac下git+maven+jenkins自动打包发布的更多相关文章

  1. Mac下Unity使用Jenkins自动化打包

    重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装  PS:会有权限问题 重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装 重要的事情说三遍: ...

  2. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  3. 基于jenkins自动打包并部署Tomcat环境

    传统网站部署的流程 在运维过程中,网站部署是运维的工作之一.传统的网站部署的流程大致分为:需求分析->原型设计->开发代码->提交代码->内网部署->内网测试->确 ...

  4. Jenkins自动打包配置

    当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下. 1.安装Jenkins,这个很简单,不需要多说. 2.下载Git Plugin,Gradle Plugin,Andro ...

  5. Android Jenkins自动打包纪录

    关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录 (本篇文章需要对Jenkins有最基本的基础了解) 博主所在公司曾负责app测试过程中发 ...

  6. 发布nuget包的正确姿势---cicd自动打包发布nuget包

    最轻便的发布nuget包方式,方便cicd自动打包发布nuget包 首先新建项目 项目名随便取,这里就叫它GuiH.ClassLibrary 默认即可,需要改目标版本时,等创建好再改 项目创建好了 随 ...

  7. Mac下配置Maven环境变量

    Mac下配置Maven环境变量 1.先到Apache官网下载maven压缩包.下载地址:http://maven.apache.org/download.cgi 2.Maven是用Java开发的,所以 ...

  8. Mac下git通过SSH进行免密码安全连接github

    Git——The stupid content tracker(傻瓜内容跟踪器) Git是Linux的缔造者Linus Torvalds为了帮助管理Linux内核源码而开发的一款免费.开源的分布式版本 ...

  9. Mac下Git的基础操作

    目前最火的版本控制软件是Git了吧,今天简单梳理一下Mac下Git的基础操作~~ 一.什么是Git Git是一个分布式代码管理工具,用于敏捷的处理或大或小的项目,类似的工具还有svn. 基于Git的快 ...

随机推荐

  1. jquery记忆笔记

    1.javascript需要注意的一些问题: ①不要使用==比较,始终坚持使用===比较. false == 0; // true false === 0; // false ②NaN这个特殊的Num ...

  2. Python匿名函数详解

    python 使用 lambda 来创建匿名函数. lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的. 在Python中,lambda ...

  3. java基础50 配置文件类(Properties)

    1. 配置文件类Properties的概念 主要生产配置文件与读取配置文件的信息 2.Properties要注意的细节 1.如果配置文件一旦使用了中文,那么在使用store方法生产的配置文件额时候字符 ...

  4. es6遍历数组forof

  5. Struts 2 - Environment Setup

    Our first task is to get a minimal Struts 2 application running. This chapter will guide you on how ...

  6. 第一篇CodeIgniter框架的下载及安装

    初次学习Php,网上搜了很多php框架,最后选择了CodeIgniter. 安装环境:php5+mysql6.5+iis7 我的电脑是用来办公写文档用的,win7系统,不想换系统,所以就安装了win7 ...

  7. Solr的入门知识

      一.Solr的简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中.都 ...

  8. USACO 6.1 A Rectangular Barn

    A Rectangular Barn Mircea Pasoi -- 2003 Ever the capitalist, Farmer John wants to extend his milking ...

  9. 8-8 Ddfense Line uva1471 优先级队列

    题意:给你一串长度为n的序列   你的任务是删除一个连续的子序列  使得剩下的序列中有一个长度最大的连续递增子序列  例如  将 5 3 4 9 2 8 6 7 1 中的9 2 8 删除  得到5 3 ...

  10. Web安全漏洞深入分析及其安全编码

    摘自:http://blog.nsfocus.net/web-vulnerability-analysis-coding-security/ 超全Web漏洞详解及其对应的安全编码规则,包括:SQL注入 ...