Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置
by:授客 QQ:1033553122
测试环境
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持续集成环境配置的更多相关文章
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A ...
- jenkins + Git 搭建持续集成环境
持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...
- Jenkins+ANT+SVN快速搭建持续集成环境
伟大的语言都从helloworld开始,这里我们用Jenkins+ANT+SVN来搭建这一套持续集成环境. 环境准备: 一台已经配置好Jenkins和Ant的机器. 项目准备: 用Ecplise建立一 ...
随机推荐
- 程序员IT计算机中常见英语单词
abstract 抽象的 abstract base class (ABC)抽象基类 abstract class 抽象类 abstraction 抽象.抽象物.抽象性 access 存取.访问 ac ...
- vue脚手架中使用axios
虽然之前用过n次,但大多都是直接在页面中引入axios.js的.今天想换种方式使用,一时间竟不知道怎么配置了.特此记录下. 1.npm 安装axios,文件根目录下安装,指令如下: npm inst ...
- .NET图平台下的图像处理工具---强大的Emgucv
图像一直与时代相伴,图形化的应用软件也重不可缺.对于MFC.Delphi.Lazarus.Qt大家可能已经耳熟能详.对于很多图像处理的开源库,很多都是用C\C++写的,而.Net下的开源库以前很少了解 ...
- VueJs(14)---理解Vuex
理解Vuex 一.Vuex 是什么? 首先我们来分析一种实际开发中用vue.js的场景,你有n个组件,当你改变一个组件数据的时候需要同时改变其它n个组件的数据,那么我想你可能会对 vue 组件之间的通 ...
- java字符流操作flush()方法及其注意事项
java字符流操作flush()方法及其注意事项 flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...
- Activity的生命周期函数
前言: 上一篇文章写了关于Activity生命周期和生命周期状态的介绍,这一篇文章给大家聊聊Activity生命周期函数. 主Activity: 应用程序的入口一般都是桌面应用程序图标,用户点击应用图 ...
- 【EF6学习笔记】(七)读取关联数据
本篇参考原文链接:Reading Related Data 本章主要讲述加载显示关联数据: 数据加载分为以下三种 Lazy loading 这种加载方式在于需要用到这个导航属性数据的时候,才会去数据库 ...
- java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.<init>()
Caused by: org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis ...
- Ajax的初级使用
一.AJAX简介(本文的例子都使用的是原生的ajax) 老技术新用法二.异步和同步区别三.XMLHttpRequest对象(面试题) 属性: readyState: 0:未初始化 1:open方法已经 ...
- spark之java程序开发
spark之java程序开发 1.Spark中的Java开发的缘由: Spark自身是使用Scala程序开发的,Scala语言是同时具备函数式编程和指令式编程的一种混血语言,而Spark源码是基于Sc ...