一。 git代码管理

一般使用jenkins集成时jenkins需要从代码仓库中抓取源代码进行编译打包运行等 这里的仓库可以使用svn或者git 我这里使用git

代码开发 使用eclipse   git远程服务器使用gitblit(参考http://blog.csdn.net/liaomin416100569/article/details/78466294 章节2 第三方git服务器)

gitblit默认的账号和密码时admin和admin gitblit下创建一个版本库 jk

eclipse下创建maven项目(jar项目)jk 我这里简易使用springboot发布一个helloworld的web程序

pom.xml配置为:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.et</groupId><artifactId>jk</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.8.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

springboot具体参考官网(https://projects.spring.io/spring-boot/)
添加一个主类(发布一个rest服务)用于运行

package cn.hello;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@EnableAutoConfiguration
public class HelloController {@RequestMapping("/")@ResponseBodyString home() {return "Hello World!";}public static void main(String[] args) throws Exception {//System.setProperty("server.port","8889");SpringApplication.run(HelloController.class, args);}
}

application.yml

server:port: 8888

大致项目结构图解为:


添加当前项目的本地仓库 关联到远程仓库 从gitblit上拷贝git的http地址(http://admin@192.168.58.150:8080/gitblit-1.8.0/r/jk.git)

添加当前项目本地仓库 过程如下

本地仓库关联到远程仓库

提交代码到远程仓库

查看gitblit发现内容已经提交

二。jenkins集成

jekins配置从git仓库抓取源码 同时使用maven进行打包 使用java命令运行

jekin安装过程 参考http://blog.csdn.net/liaomin416100569/article/details/78431720

登录jeken配置 jdk和maven和git环境

假设我的jdk,maven,git 已经下载安装好

1》配置环境

点击左侧菜单 系统管理->点击Global Tool Configuration

界面上添加 JAVA_HOME路径  git执行命令

同一页面滚动到下面设置maven

2》配置用于连接git的用户名密码信息

点击左侧菜单的Credentials 新增一个登陆的用户和密码

输入git的用户名和密码保存

3》创建构建项目

接下来 jenkins首页创建一个新任务. 输入项目名称 比如我的jk 选择构建一个自由风格的软件项目

以下介绍构建的几个面板数据的作用

Genernal配置 一般用于配置项目名称等信息 比如

源码管理配置 主要配置git仓库的位置 及选择之前设置的用户名密码信息

构建触发器 就是在什么时候触发构建 这里选择第一项(也就是在浏览器敲入 地址 JENKINS_URL/job/jk/build?token=run就可以触发构建)

构建 真实的代码编译运行的步骤 我这里需要执行两个步骤

源代码从git仓库下载后

需要首先maven打jar包

使用java -jar jar包来运行

构建是 存在一些内置的临时变量 使用 ${变量名} 获取 比如 拉取的git源码的工作目录是${WORKSPACE}

具体 可以点击右侧的 ?按钮跳转过去查看(http://192.168.58.150:8080/jenkins/env-vars.html/)

这里配置运行maven打包的jar包可谓一波三折

刚开始添加运行jar命令 是

java -jar ${WORKSPACE}/target/jk-0.0.1-SNAPSHOT.jar

结果发现 这个命令阻塞 jenkins的运行 所以构建一直不完成  这种shell不行 后面使用 nohup或者setsid

nohup java -jar ${WORKSPACE}/target/jk-0.0.1-SNAPSHOT.jar >${WORKSPACE}/target/myjar.log 2>&1 &

结果发现 只要有 >符号出现在命令中 都直接不执行

后面想将这个命令 放到sh文件中去

在 /usr/share/tomcat/.jenkins/workspace/jk 新建文件jk_run.sh添加内容

nohup java -jar ${WORKSPACE}/target/jk-0.0.1-SNAPSHOT.jar >${WORKSPACE}/target/myjar.log 2>&1 &

命令行就执行这个文件

sh ${WORKSPACE}/jk_run.sh

发现执行后的java进程被 jenkins给干掉了 后面看了官网(https://wiki.jenkins.io/display/JENKINS/ProcessTreeKiller)

需要在命令前添加一个变量 用于修改当前jk构建线程的id 才能不被杀掉 最后修改为

BUILD_ID=dontKillMe sh ${WORKSPACE}/jk_run.sh

如果多次构建每次都启动 端口会被占用所以这里 构建启动之前先将该程序干掉 最终运行脚本就是

ps -ef | grep java | grep jk | awk '{system("kill -9 "$2)}'
BUILD_ID=dontKillMe sh ${WORKSPACE}/jk_run.sh

最后我的构建是:

配置好后 可以使用构建触发器指定的token(我上面填的token是run) 来触发一次构建了

http://192.168.58.150:8080/jenkins/job/jk/build?token=run

首页左下角看到构建执行状态  多出一行有进度条


在右侧点击项目名称进入 看到构建历史记录


点击这个历史记录 超链接进去 可以看到构建控制台输出 成功与否都可以从这里看到


我的控制台 出现了maven构建和我自己的脚本运行

Started by remote host 192.168.58.1
Building in workspace /usr/share/tomcat/.jenkins/workspace/jk> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository> git config remote.origin.url http://admin@192.168.58.150:8080/gitblit-1.8.0/r/jk.git # timeout=10
Fetching upstream changes from http://admin@192.168.58.150:8080/gitblit-1.8.0/r/jk.git> git --version # timeout=10
using GIT_ASKPASS to set credentials > git fetch --tags --progress http://admin@192.168.58.150:8080/gitblit-1.8.0/r/jk.git +refs/heads/*:refs/remotes/origin/*> git rev-parse refs/remotes/origin/master^{commit} # timeout=10> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision f98704b5db306ac5e7cb9afa3390163d15768975 (refs/remotes/origin/master)> git config core.sparsecheckout # timeout=10> git checkout -f f98704b5db306ac5e7cb9afa3390163d15768975
Commit message: "jjjj"> git rev-list f98704b5db306ac5e7cb9afa3390163d15768975 # timeout=10
[jk] $ /soft/apache-maven-3.0.4_localtest/bin/mvn -f pom.xml package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building jk 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ jk ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /usr/share/tomcat/.jenkins/workspace/jk/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ jk ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ jk ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ jk ---
[INFO] Building jar: /usr/share/tomcat/.jenkins/workspace/jk/target/jk-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.8.RELEASE:repackage (default) @ jk ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.800s
[INFO] Finished at: Tue Nov 07 03:53:24 PST 2017
[INFO] Final Memory: 15M/36M
[INFO] ------------------------------------------------------------------------
[jk] $ /bin/sh -xe /var/cache/tomcat/temp/jenkins5793360651956692863.sh
+ BUILD_ID=dontKillMe
+ sh /usr/share/tomcat/.jenkins/workspace/jk/jk_run.sh
Finished: SUCCESS

构建成功后 linux查看查看

[root@node3 jk]# jps
7955 Jps
3173 Bootstrap
7865 jk-0.0.1-SNAPSHOT.jar

我的springboot程序也可以通过浏览器访问

持续集成框架jenkins介绍02-持久集成git仓库+maven项目相关推荐

  1. Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)

    持续集成及Jenkins介绍和安装配置 持续集成及Jenkins介绍 软件开发生命周期 持续集成 持续集成的组成要素 持续集成的好处 Jenkins介绍 Jenkins安装和持续集成环境配置 Gitl ...

  2. 持续集成工具Jenkins学习4 Idea集成Jenkins插件

    持续集成工具Jenkins学习4 Idea集成Jenkins插件 一.功能简介 二.安装Idea插件 1. 搜索安装 2. 设置 三.Jenkins开启CSRF 四.使用 一.功能简介 Idea可以方 ...

  3. Jenkins骚操作第四章构建maven项目和Pipeline流水线项目构建

    文章目录 Jenkins构建Maven项目 1.Jenkins项目构建类型-自由风格项目构建 1.1.拉取代码 1.2.编译打包 1.3.部署 2.Jenkins项目构建类型(3)--Maven项目构 ...

  4. 【Jenkins】解决检出git仓库时报错Caused by: java.io.IOException: Cannot run program “git“

    Jenkins中配置从一个win7的slave节点检出git仓库时报如下错误: git init E:\jenkins\workspace\Git-backup # timeout=10 ERROR: ...

  5. 持续集成部署Jenkins工作笔记0007---配置JDK和Maven并安装Deploy插件

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 安装完以后 点击全局安全配置 点击选上,允许用户注册 授权策略写上,任何用户可以做任何事 保存

  6. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  7. 持续集成平台Jenkins配置方法介绍

    持续集成(Continuous integration,CI)是软件开发和发布流程中最重要的组成部分,有利于加快开发进度.Jenkins是常用的持续集成管理工具,本文将简要介绍Jenkins持续集成工 ...

  8. 【云原生 • DevOps】一文掌握持续集成工具 Jenkins

    目录 一.持续集成工具 Jenkins 介绍 1. 什么是持续集成 2. Jenkins 介绍 二.Jenkins 的安装与部署 1. 安装 Jenkins 2. 本地访问 Jenkins 3. 插件 ...

  9. 新版发布:大数据应用开发管理集成框架DataSphere Studio 1.1.0

    DataSphereStudio1.1.0 是践行数据应用开发管理框架的里程碑,集成了 WeDataSphere 已开源的所有生态组件,并带来了一系列强大的全新特性,以及更加精简.易于对接的数据应用开 ...

最新文章

  1. VTK:Utilities之ArrayCalculator
  2. php动态渲染和静态渲染,php,vue,vue-ssr 做出来的页面有什么区别?
  3. 将权限授予文件夹和程序集
  4. java 视图对象转换_java-如何从onItemSelected()方法返回的视图对象...
  5. C++/C--相对路径与绝对路径【转载】
  6. java客户端实验_java实验(客户端) 2015106宋世超
  7. 零基础转行网络安全可以做什么工作
  8. 均值(average)与期望(mean)
  9. Eclipse - 取消英文拼写检查
  10. 《中国睡眠研究报告2022》:被调查大学生睡前不看手机的不足3%
  11. python办公自动化 使用openpyxl合并excel表格
  12. android单机斗地主,单机斗地主最新安卓版
  13. Java岗面试题--Java基础(日积月累,每日三题)
  14. 基于 SPICE 协议的硬编推流整合方案在云游戏中的应用
  15. 计算机为什么要学16进制,为什么人们通常用十六进制而不是二进制写计算机
  16. React学习总结(一)
  17. 快速搭建小程序,实现线上引流获客
  18. TexturePacker 自定义模板
  19. JS事件详解和js事件委托
  20. Android,通讯录导入,contacts,联系人

热门文章

  1. chart.js使用学习——雷达图
  2. Office PIA:关于Office PIA应用程序的部署
  3. 萧乾升:4.13黄金白银TD纸白银早盘策略
  4. 「扫盲」 Elasticsearch
  5. 编辑文字,图片,网页
  6. oracle max相同,关于oracle:具有相同名称的材料化视图和表
  7. markdown中添加Emoji表情让文章更有趣味
  8. 领英发布2019年职场十大趋势 新一线城市吸引力增强
  9. Robot Arm from solidworks to ros
  10. oppo手机root管家,oppo root软件