Jenkins结合GIT Maven持续集成环境配置

 

by:授客 QQ:1033553122

安装Git插件 1

安装Git客户端 1

安装JAVA JDK及MAVEN 2

Jenkins JDK,MAVEN,GIT配置 2

新建项目与项目配置 3

【全局属性】 4

【源码管理】 4

【构建环境】 6

SSH服务器配置 6

构建环境 7

构建】 8

 

测试环境

Jenkins2.32.1

CentOS Linux 7

git-1.8.3.1.tar.gz

下载地址:https://www.kernel.org/pub/software/scm/git/git-1.8.3.1.tar.gz

 

操作步骤

安装Git插件

插件名称:Git Plugin,安装步骤 略

安装Git客户端

jenkins所在服务器安装git客户端

# yum install gcc

# mkdir /usr/local/git

# tar -xvzf git-1.8.3.1.tar.gz

# cd git-1.8.3.1/

# ./configure --prefix=/usr/local/git

# make && make install

# cd /usr/local/git/bin/

# ls

git            gitk              git-shell           git-upload-pack

git-cvsserver  git-receive-pack  git-upload-archive

配置GIT环境变量

# git

usage: git [--version] [--help] [-c name=value]

[--exec-path[=]] [--html-path] [--man-path] [--info-path]

[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]

[--git-dir=] [--work-tree=] [--namespace=]

[]

The most commonly used git commands are:

add        Add file contents to the index

bisect     Find by binary search the change that introduced a bug

branch     List, create, or delete branches

checkout   Checkout a branch or paths to the working tree

clone      Clone a repository into a new directory

commit     Record changes to the repository

diff       Show changes between commits, commit and working tree, etc

fetch      Download objects and refs from another repository

grep       Print lines matching a pattern

init       Create an empty Git repository or reinitialize an existing one

log        Show commit logs

merge      Join two or more development histories together

mv         Move or rename a file, a directory, or a symlink

pull       Fetch from and merge with another repository or a local branch

push       Update remote refs along with associated objects

rebase     Forward-port local commits to the updated upstream head

reset      Reset current HEAD to the specified state

rm         Remove files from the working tree and from the index

show       Show various types of objects

status     Show the working tree status

tag        Create, list, delete or verify a tag object signed with GPG

安装JAVA JDK及MAVEN

参考文章:

CentOS7+svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布

Jenkins JDK,MAVEN,GIT配置

系统管理-Global Tool Configuration

新建项目与项目配置

新建时,选择“构建一个自由风格的项目”

【General】

点击高级,展开隐藏的选项,勾选“使用自定义的工作空间”,如下

目录:Jenkin构建时,会根据Git等源码库配置,把代码拷贝到该目录下,这里$DDT_SALE_BUILD_WS为变量,其值取自“全局属性”中对应“键”的对应的“值”,如下

显示名称:工作空间名称,如果为空,则默认使用项目名称

【全局属性】

【系统管理-全局配置】,找到“全局属性”,勾选“Environment variables”,点击“增加”,添加

【源码管理】

选择Git

说明:

Repostory URL:指定远程Git源码库的URL。

Credentials:登录凭据,这使用帐号/密码,点击Add按钮,如下使用git帐号/密码的方式登录

Branch Specifier (blank for 'any'):指定源码库中的分支,具体配置参考官方说明

说明:不知道是否这样就可以了,还是说还需要进行其它配置(环境不是我搭的,我操作时就配置了这个就可以了)。

【构建环境】

SSH服务器配置

配置之前,先对SSH服务器进行配置,进入【系统管理-全局配置】-> Publish over SSH -> SSH Servers -> 增加,新增界面中正确填写配置信息,填写好后可通过点击下方的 Test Configuration按钮测试配置是否正确。

说明:

Name:服务器名称

Hostname:主机地址

Username:用于SSH服务器登录用户名

Passphrase/Password:用于SSH服务器登录密码

Remote Directory:远程目录,可以理解为Username SSH登录后的根目录

 

构建环境

这里根据实际需求进行配置,构建之前、构建之后通过SSH发送文件、执行命令。

以勾选“Send files or execute commands over SSH after the build runs”为例

说明:

Name: 通过下拉方式选取的SSH服务器

Source files:源文件,位于Jenkins所在服务器,*.war代表以.war结尾的文件,,注意这里填写的为相对路径,实际路径为 “工作目录”/Source files(例中,实际路径为:/work/JenkinsWorkspace/DDT_SALE_BUILDWS/ddt-main/target/*.war

Remove prefix:Source files输入框中需要移除的前缀部分,通常为文件所在目录的路径,个人理解,用于告诉Jenkins需要传输的具体文件

Remote directory: 需要把文件传送到SSH远程服务器上的目标目录。注意,这填写的基于“SSH服务器配置”中设置的Remote Directory的相对路径。

 

实际远程目录为: SSH服务器配置的Remote Directory/这里配置的Remote directory

(例中,实际路径为:/app/war/DDT_CORE_JETTY_CNSZ22_WEB_MK_01/webapps)

Exec command:需要执行的命令。

例中,构建后,会把Jenkins本地/work/JenkinsWorkspace/DDT_SALE_BUILDWS/ddt-main/target/xxx.war文件通过SSH传送到远程服务器(10.202.95.85)的/app/war/DDT_CORE_JETTY_CNSZ22_WEB_MK_01/webapps目录下。

构建

有时候,一些代码工程的构建,会依赖另一些jar包,我们可在构建*.war包之前,通过maven来构建这些被依赖的jar包,如下

注:构建*.war包也是如此,依葫芦画瓢

例:

代码工程ddt-industry-ws的构建,依赖 industry-client-0.0.1-SNAPSHOT.jar,为此需要把ddt-industry-client工程打包为industry-client-0.0.1-SNAPSHOT.jar(为何是ddt-industry-client这个工程,这个是开发指定的,没为何)

那我们可以在jenkins已经拷贝源码后到本地后(依赖【源码管理】处的配置),配置【构建】

“增加构建步骤” -> “Invoke top-level Maven targets”

 

这样,待jenkins构建完成,会在工程/target目录下生成对应的jar包(例中,会在ddt-industry-ws/ddt-industry-client/target目录下生成industry-client-0.0.1-SNAPSHOT.jar)

Jenkins Jenkins结合GIT Maven持续集成环境配置的更多相关文章

  1. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...

  2. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

    上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...

  3. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...

  4. Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境

    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...

  5. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  6. 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

    使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...

  7. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)

    前言     但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...

  8. jenkins + Git 搭建持续集成环境

    持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...

  9. Jenkins+ANT+SVN快速搭建持续集成环境

    伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...

随机推荐

  1. HBase之RPC调用流程简介

    首先分析hbase中对于master协议的调用: 在ConnectionImplementation的方法getKeepAliveMasterService被调用时,会通过MasterServiceS ...

  2. 【zookeeper】4、利用zookeeper,借助观察模式,判断服务器的上下线

    首先什么是观察者模式,可以看看我之前的设计模式的文章 https://www.cnblogs.com/cutter-point/p/5249780.html 确定一下,要有观察者,要有被观察者,然后要 ...

  3. [ncw7] 小睿睿的方案

    考虑一对情侣(x,y)x<y的贡献,设in[x],out[x]为数的dfs序. 强制从x走向y方向 当in[x]<in[y]且out[y]<=out[x] 矩形{1,in[x],in ...

  4. json_decode与json_encode容易被忽视的点

    一.json_decode的使用,json_decode共有4个参数 json_decode ( string $json [, bool $assoc=FALSE [, int $depth= 51 ...

  5. python 闯关之路四(上)(并发编程与数据库理论)

    并发编程重点: 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别.互斥锁.信号. 事件.join.GIL.进程间通信.管道.队列. 生产者消息者模型.异步模 ...

  6. 分享几个实用的Chrome扩展程序

    前言 吐槽一下自己,最近变懒了,博客已经变成月更了.这次分享几个自己工作这几年下来,平常用的比较多的几个谷歌浏览器的扩展程序. AdBlock 最受欢迎的 Chrome 扩展,拥有超过 6000 万用 ...

  7. pytorch模型部署在MacOS或者IOS

    pytorch训练出.pth模型如何在MacOS上或者IOS部署,这是个问题. 然而我们有了onnx,同样我们也有了coreML. ONNX: onnx是一种针对机器学习设计的开放式文件格式,用来存储 ...

  8. linux平均负载的理解及原因排查

    当系统响应缓慢时,一般会用top或uptime命令查看系统负载是否过高. 例如输入uptime命令显示如下图,其中23:47:19表示现在的时间,up 260 days,14:39表示系统运行了多久, ...

  9. 手动生成/etc/shadow文件中的密码

    shadow文件的格式就不说了.就说说它的第二列——密码列. 通常,passwd直接为用户指定密码就ok了.但在某些情况下,要为待创建的用户事先指定密码,还要求是加密后的密码,例如kickstart文 ...

  10. Python面向对象基础:编码细节和注意事项

    在前面,我用了3篇文章解释python的面向对象: 面向对象:从代码复用开始 面向对象:设置对象属性 类和对象的名称空间 本篇是第4篇,用一个完整的示例来解释面向对象的一些细节. 例子的模型是父类Em ...