【原】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修改java内存大小_Linux 和 windows修改java虚拟机内存大小

1、Java内存区域划分: 运行时的数据区:方法区和堆(各个线程共享的内存区域),程序计数器、Java虚拟机栈和本地方法栈(线程私有的) 程序计数器:当前线程所执行字节码的行号指示器,字节码解释器就是通过改变计算器的值来选取下一条需…

html制作彩虹_制作彩虹

html制作彩虹by Gil Fewster吉尔弗斯特(Gil Fewster) 制作彩虹 (Making rainbows) This is a story about curiosity. It’s also about what happens when you stick a needle into your eye. If you happen to be eating a handful of grapes right this moment, maybe come…

python3 set_python3.x 基础三:set集合

| clear(...) 清空一个集合| Remove all elements from this set.>>>set1.clear()>>>set1set()| copy(...) 影子复制,指向同一个内存地址| Return a shallow copy of a set. |>>> list1[3, 2, 1, 1, 2, 3, 4, 5]>>>…

Linux内核分析作业第八周

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

iOS--数据存储NSUserDefaults

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

巨人肩膀_如何站在巨人的肩膀上

巨人肩膀“If I have seen further than others, it is by standing on the shoulders of giants.” — Isaac Newton“如果我能比其他人看到更多,那就是站在巨人的肩膀上。” —艾萨克牛顿 In 1676, Isaac Newton spoke of the great thinkers who came before him…

mysql 触发器定义变量_MySQL 函数存储过程触发器定义简单示例

1.变量提示NEW 是新值-- OLD 是旧值INSERT 只有NEW ----UPDATE有NEW和OLD ---DELETE只有OLD2.准备测试表(userinfo、userinfolog)use test;create table userinfo(userid int,username varchar(10),userbirthday date);create table userinfolog(logtime datetime,loginfo varc…

[EOJ439] 强制在线

Description 见EOJ439 Solution 先考虑不强制在线怎么做。 按询问区间右端点排序&#xff0c;从左往右扫&#xff0c;维护所有后缀的答案。 如果扫到 \(a[i]\)&#xff0c;那么让统计个数的 \(cnt[a[i]]\). 如果\(cnt[a[i]]<a[i]\)&#xff0c;那么在当前的右端点固定的情况…

大数据 就业 缺口_中国AI&大数据就业趋势报告:平均月薪超2万,缺口650万人...

2019世界人工智能大会开幕式上&#xff0c;特斯拉公司联合创始人兼首席执行官Elon Musk 和中国企业家俱乐部主席、联合国数字合作高级别小组联合主席马云进行了一场“双马”对话。谈到人工智能话题时&#xff0c;马斯克认为&#xff0c;“未来的科技发展变化将超越我们的能力”…

Android pm 命令详解

一、pm命令介绍与包名信息查询 1.pm命令介绍 pm工具为包管理&#xff08;package manager&#xff09;的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用 pm工具是Android开发与测试过程中必不可少的工具&#xff0c;shell命令格式如下&#xff1a…

开源 非开源_开源为善

开源 非开源by Michael D. Johnson迈克尔约翰逊(Michael D.Johnson) 开源为善 (Open Source for Good) We’ve spent two years coding for a cause, one nonprofit at a time. And now Free Code Camp’s pushing ahead to help organizations at scale.我们花了两年的时间为…

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

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

InfluxDB(官方使用说明)

安装InfluxDB OSS 此页面提供有关安装&#xff0c;启动和配置InfluxDB的说明。 InfluxDB OSS安装要求 root为了成功完成&#xff0c;需要安装InfluxDB软件包或具有管理员权限。 InfluxDB OSS网络端口 InfluxDB默认使用以下网络端口&#xff1a; TCP端口8086用于通过InfluxDB的H…

incc与oracle连接_Oracle 连接和会话的区别

连接并不是会话的同义词&#xff0c;发现这一点时很多人都很诧异。在大多数人眼里&#xff0c;它们都是一样的&#xff0c;但事实上并不一定如此。在一条连接上可以建立0个、一个或多个会话。各个会话是单独而且独立的&#xff0c;即使它们共享同一条数据库物理连接也是如此。一…

CodeForces 176B Word Cut(DP)

题意&#xff1a;给你a串和b串&#xff0c;你能切k次&#xff0c;每次切完将尾部分放在头的前面&#xff0c;问有多少种方案切k次从a串变为b串 思路&#xff1a;令dp[i][0]为砍了i次变成b串的方案数&#xff0c;dp[i][1]为砍了i次变成非b串的方案数&#xff0c;然后预处理一下前…

如何将React App转换为React Native

I have been working on a lot of mobile projects lately — including Cordova, PhoneGap, React Native, some Ionic and Swift — but I have to say, React Native is by far the best experience in mobile development I have had so far. It has great, web-like d…

HTTP状态码:400\500 错误代码

转自&#xff1a;http://blog.sina.com.cn/s/blog_59b052fa0100it74.html一些常见的状态码为&#xff1a;200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解&#xff1a;1xx&#xff08;临时响应&#xff09;表示临时响应并需要请求者继续执行操作的状态…

dhcp服务

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

python数据结构与算法40题_Python数据结构与算法40:递归编程练习题3:ASCII谢尔宾斯基地毯...

注&#xff1a;本文如涉及到代码&#xff0c;均经过Python 3.7实际运行检验&#xff0c;保证其严谨性。本文阅读时间约为7分钟。递归编程练习题3&#xff1a;ASCII谢尔宾斯基地毯谢尔宾斯基地毯谢尔宾斯基地毯是形如上图的正方形分形图案&#xff0c;每个地毯可分为等大小的9份…

使用Python发送电子邮件

by Arjun Krishna Babu通过Arjun Krishna Babu 如何使用Python发送电子邮件 (How to send emails using Python) As a learning exercise, I recently dug into Python 3 to see how I could fire off a bunch of emails. There may be more straightforward methods of doing…