【原】Jenkins持续集成环境搭建之创建java项目的job【centos6.5 java maven git 项目】...

一、构建一个maven项目
在jenkins主页上,左侧,选择“新建”,然后填写项目名称,选择“构建一个maven项目”
二、Git配置
保存之后,进入详细配置页面:
这里的源码管理:选择git,输入代码的git地址,Credentials,填写代码分支(默认是*/master主分支)
Credentials,需要点击Add按钮,添加具体的git凭证,
①如果当前git项目配置为通过用户名+密码认证,则kind选择username with password;
centos的root用户生成的公钥密钥信息位置信息如下:
②如果用的是公钥+私钥的方式,则kind需要选择:ssh username with private key
在private key里面填写私钥,私钥 位置(在开通git代码权限时生成):
windows下:C:\Users\Administrator\.ssh\id_rsa
centos 下 /root/.ssh/id_rsa
文件内容:
此时需要把这个id_rsa文件中的所有内容都粘贴到文本框中(包括BEGIN RSA PRIVATE KEY和END RSA PRIVATE KEY这两行)
三、构建项目触发器
build periodically:周期性构建,比如每隔十分钟构建一次,是通过cron表达式控制的,具体可以点击右侧的帮助
poll scm:每隔多长时间pull一次代码,如果有更新,则编译,也是通过cron表达式控制的
点击后面的?标识可以查看说明:
配置maven编译的pom文件和部署脚本:
root pom文件:由于现在当前文章中tool代码中的主pom.xml就在根目录下,所以root pom直接填写:pom.xml
如果不是在根目录下,例如:toolsamdin项目中的pom.xml文件,则root pom直接填写:toolsamdin\pom.xml
goals and options:这里调用maven的命令:clean install(如果项目中配置了多套配置文件profile,这里需要应用id=test的profile这套配置,则此处填写:clean install -P test)
这里我们简单的测试一下,写一个 clean install
点击立即构建:
第一次由于要拉代码,所以比较慢,过了一会之后,出现如下变化:
这里蓝色的圈表示成功,红色表示失败
点击 # 进去之后
点击 Console Output 查看本次构建的输出记录 ,最底部显示成功,如果有错误的话,这里会显示失败信息的。
这时候,去我们的centos服务器的/root/.jenkins/jobs 目录下查看变化,首先多了一个weds-common文件夹,这个是根据我们的job的名字创建的。
进入目录中 cd weds-common目录,查看
这里是项目的构建记录
进入 cd /root/.jenkins/workspace/ 目录查看
这里多了我们的项目文件夹,这个是从我们的git服务器上pull下来的代码
至此,本机的拉取,构建代码大功告成。
四、构建项目发布到远程linux centos 服务器
点击Post Steps,如图是一个正确的配置,报错可以不管。
其中SSH Server是我们之前在系统设置 Publish over SSH 中设置好的
post steps需要发布到远程linux,所以选择:
然后填写目标war或jar到远程linux机器上的哪个目录下,然后调用远程机器上的shell脚本,自动重启tomcat,自动备份等功能
其 中Source files的目录是基于当前job的目录(可以从jenkins的安装目录下找到):例如当前job名称为weds-common,则对于root用户,Source files中的目录是相对于/root/.jenkins/workspace/weds-common目录下的,因此,如果我们要发送weds-common下的weds-pay项目的war包,这里需要填写:weds-pay/target/weds-pay.war
Remove prefix:表示需要移除的目录,比如这里填写weds-pay/target,则表示发布时,只把weds-pay.war发布到远程linux,而不包含weds-pay/target目录结构
Remote directory:表示需要把编译好的war包发布到远程linux的哪个目录下
Exec command:需要执行的shell命令,shell命令在远程linux服务器上,比如。一般是需要执行:停止tomcat,复制war到tomcat,备份,启动tomcat等。
注:本人在配置的是soure files 路径填写有问题,导致构建的时候, Console Output一直报SSH: Transferred 0 file(s),关于相对路径的问题,如果搞不清楚是该相对于谁,请看下图:
四种第一个截图里的 test.sh的内容:该shell命令的作用是备份上传文件,删除tomcat中原来的项目文件(由于tomcat自动解压缩,所以这里删除原来的文件,等一小会后会自动上传文件并且解压缩)

#!/bin/bash #传参测试脚本 export LANG="en_US.UTF-8" 
PROJECT=$1 BAK_DIR=/usr/local/autodeploy/bak/$PROJECT
TEMP_DIR=/usr/local/autodeploy/temp/$PROJECT
TOMCAT_HOME=/usr/local/tomcat
if [ -f $TEMP_DIR/$PROJECT.war ]; then
#sleep 3
if [ -f $TOMCAT_HOME/webapps/$PROJECT.war ];
then echo "===================deleteing old war==================="
rm -rf $TOMCAT_HOME/webapps/$PROJECT.war
rm -rf $TOMCAT_HOME/webapps/$PROJECT
else
echo "===================old war not exits==================="
fi
echo "===================copying new war==================="
cp $TEMP_DIR/$PROJECT.war $TOMCAT_HOME/webapps/$PROJECT.war
echo "===================baking war==================="
mkdir -p $BAK_DIR
cp $TOMCAT_HOME/webapps/$PROJECT.war $BAK_DIR/"$PROJECT"_`date +%Y%m%d%H%M%S`.war
echo "===================deleteing temp file==================="
rm -rf $TEMP_DIR/$PROJECT.war
echo "===================finished=========================="

else
echo "===================temp file not exits===================" fi

 

转载于:https://www.cnblogs.com/caoheyang911016/p/6637930.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux内核分析作业第八周

进程的切换和系统的一般执行过程 一、进程调度的时机 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用sched…

iOS--数据存储NSUserDefaults

2019独角兽企业重金招聘Python工程师标准>>> 今天去面试,被问道NSUserDefaults的存取并手写出来,一时想不起来,回来之后看看之前的笔记,稍作一些整理 NSUserDefaults是一个单例,在整个程序中只有一个实例对…

mysql5.6热升级_Mysql5.6主从热备配置

数据库是应用系统的核心,为了保证数据库的安全采用主从热备是很常见的方法,也就是主数据库DDL、DML都将被同步到从数据库。一、 实验环境操作系统:windowsserver 2008 R2数据库:mysql-advanced-5.6.21-winx64二、 准备工作1、…

dhcp服务

安装与配置 配置文件 修改配置文件 复制这个文件到另一端 打开另一端的配置文件 原端输入这些命令可以去掉英文 然后vim进入另一端配置文件 全局配置不在{}内的 分发范围是指哪个ip到哪个ip的范围 指定固定电脑获取固定位置 原端修改配置文件 下面进行启动dhcp 克隆一台虚拟机&…

java有什么压力_编程语言的心智负担!你学编程得有多大的压力快来测试一下...

很多编程语言对比的文章,总喜欢比较各种编程语言的性能、语法、IO模型。本文将从心智负担这个角度去比较下不同的编程语言和技术。内存越界如:C语言、C(C with class)C/C可以直接操作内存,但编程必须要面对内存越界问题。发生内存越界后&…

mapper mysql 主键_实现通用mapper主键策略兼容mysql和oracle

【原创文章,转载请注明原文章地址,谢谢!】1.直接用官方提供的注解方法是无法达到兼容效果的2.跟踪源码看看是否有其他方法3.这里有个genSql,可以看一下这个类4.创建一个自定义的处理类实现GenSql(代码中是我实际项目中用到的策略&…

java 面试题 由浅入深_面试官由浅入深的面试套路

阅读文本大概需要3分钟。从上图看来面试官面试是有套路的,一不小心就一直被套路。0x01:Thread面试官:创建线程有哪几种方式?应聘者:继承Thread类、实现Runable接口、使用j.u.c中的线程池面试官:继承Thread类…

java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

你好我是辰兮,本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案。文章目录一、实战问题用postman测试数据报错,类型转换异常!如何将Integer类型转换成长整形 ?先转成String型&#x…

pyqt 界面关闭信号_木辛老师的编程课堂之Python和Qt实战慕课软件开发:增加关闭按钮...

软件实战开始,快速提供编程能力;通过实战,分析产品需求,梳理设计需求,提升项目分析和架构的能力。快点跟着木辛老师一起学习吧!请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程…

最全面的几何画板实用教程视频免费下载

不同的选择就会有不同的人生夜,这里小编为奋斗在教学一线的老师们送个大福利,这也是老师们充实自己的好去处。作为数学老师一枚,在平时的教学中应该用到很多教学辅助软件,而几何画板就是其中一款。众所周知,几何画板是…

Redis(1):简介

2019独角兽企业重金招聘Python工程师标准>>> Redis之父Salvatore Sanfilippo于2009年将Redis开源。VMware公司从2010年开始赞助Redis的开发,Salvatore Sanfilippo和Pieter Noordhuis(另一名主要的代码贡献者)同年加入VMware,全职开发Redis。R…

java中类型转换的造型_Java总结篇系列:类型转换/造型

Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先,来了解下数据类型的基本理解&…

Jenkins --SVN

项目名称:XXX 源码管理: None 发布之前,获取源码 编译获取后的代码,指定vs版本 将源码拷贝至jenkins工作控件 d:\jenkins\workspace\.. 删除指定文件 用管理员命令 将Jenkins工作空间的代码发布至指定路径转载于:https://www.cnbl…

keil5图标变成白色_电脑桌面图标全部变成白色的解决办法

系统桌面图标全部变成一个样子的白色图标,这是怎么回事?电脑桌面的图标全部变成白色该如何解决?下面为大家解答。解决办法:1.首先尝试最简单的方法操作看看,登录到系统桌面,右键桌面空白处点击打开“个性化…

epoll哪些触发模式_5.epoll的水平触发和边缘触发

本篇是多路复用的第五篇,主要来讲解epoll的水平触发和边缘触发是怎么回事。一、概念介绍EPOLL事件有两种模型,水平出发和边缘触发,如下所示:1. Level Triggered (LT) 水平触发1. socket接收缓冲区不为空 有数据可读 读事件一直触发…

HC系列蓝牙模块连接单片机与电脑,传输数据(蓝牙心电测试)

毕设做无线心电监护。有线的做出来了,AD8232MCULabVIEW上位机。pcb还没时间搞,这个9*7*2.5cm拿来测试能用。 自己做了AD8232的模拟前端,打的板子还没到没法测试。 虽然比较水,但看起来任务也完成的差不多了,于是就想加…

java实现社交平台_GitHub - akpaul9527/symphony: 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。...

下一代的社区系统,为未来而构建简介Symphony([ˈsɪmfəni],n.交响乐)是一个现代化的社区平台,因为它:实现了面向内容讨论的论坛实现了面向知识问答的社区包含了面向用户分享、交友、游戏的社交网络100% 开源动机很多社区论坛系统…

精通java益处_你真的精通Java吗?

简历和自我介绍上经常能够读到“精通Java”这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗?对于语言的学习,我有一种观点,一是纵向,即…

python 遍历usb设备_python程序员教你写脚本玩微信跳一跳,只要有耐心,你就是王者!...

温馨提示:微信已经开始检测分数异常高的情况了,请大家不要跑太高哦游戏模式这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。可能刚开始上手的时候,因为时间距离之间的关系把握不…

一个电脑同时运行 64bit 和 32bit 的eclipse 如何匹配 jdk环境

一个电脑同时运行 64bit 和 32bit 的 eclipse 如何匹配 jdk环境 1 eclipse 分 64bit 和 32bit 两种. 64bit的eclipse 只能搭配 64bit的 jdk 使用. 32bit的eclipse 只能搭配 32bit的 jdk 使用. 2 电脑上安装好 32bit 和 64bit 的 jdk ,分别安装在不同的路径中. 比如我的3…