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

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

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

 


 

测试环境

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 JDKMAVEN

参考文章:

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

 

Jenkins JDKMAVENGIT配置

系统管理-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 prefixSource 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

目录
相关文章
|
15天前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
53 1
|
26天前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
61 0
|
23天前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
31 0
|
26天前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
73 0
|
2月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
Git,GitHub,Gitee&IDEA集成Git
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
68 1
|
2月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
72 0
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
69 0
|
3月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
3月前
|
Kubernetes jenkins 持续交付
Jenkins 与 Kubernetes 的集成:实现高效的资源管理和自动化部署
【8月更文第31天】随着微服务架构的普及,Kubernetes 已经成为了容器编排的事实标准。Kubernetes 提供了一种强大的方式来管理容器化的应用程序,而 Jenkins 则是持续集成与持续部署(CI/CD)领域的一个重要工具。将 Jenkins 与 Kubernetes 集成,不仅可以充分利用 Kubernetes 的资源管理能力,还能通过 Jenkins 实现自动化构建、测试和部署,从而提高开发效率和部署速度。本文将详细介绍如何将 Jenkins 集成到 Kubernetes 环境中,并提供具体的代码示例。
287 0