持续集成概述

  • 没有持续集成时的情况

持续集成最佳实战

  • 维护一个单一的代码库
  • 使构建自动化
  • 执行测试是构建的一部分
  • 集成日志及历史记录
  • 使用统一的依赖包管理库
  • 每天至少集成一次

jenkins实现持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道。

jenkins rpm安装

yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
下载地址
https://pkg.jenkins.io/redhat-stable/ RPM安装
rpm –ivh jenkins-2.32.3-1.1.noarch.rpm
service jenkins start
ckconfig Jenkins on
/var/lib/jenkins 主目录
/etc/init.d/jenkins 启动文件
/var/cache/Jenkins 程序文件
/var/log/Jenkins 日志文件 修改/etc/init.d/Jenkins
将用户修改为root,可以调用root工具
106行,113行
修改启动端口85行,$JENKINS_PORT
systemctl daemon-reload
service jenkins restart 工作目录设置
Maven项目配置
设置系统JDK ANT MAVEN
Jenkins Location
邮件通知 Configure Global Security

调试模式启动:(这里要说的)

java -jar jenkins.jar

- 指定参数启动
/usr/local/jdk_8u25/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Djava.awt.headless=true -DJENKINS_HOME=/log/data/jenkins -jar /log/jenkins_war/jenkins.war --logfile=/var/log/jenkins/jenkins.log --httpPort=8080 --httpListenAddress=192.168.10.1 --ajp13Port=-1 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

工作目录:

/root/.jenkins/workspace/

如构建java-helloword项目

/root/.jenkins/workspace/java-helloword/
  • 所有stage里执行命令都是基于这个目录
  • 每次构建会将这个项目目录git pull拉代码覆盖到最新代码.
  • jenkins执行的所有命令都是基于这个目录进行的.

安装jenkins插件

默认的插件



常用的插件

其次手动安装pipeline插件

更换插件镜像



全部镜像

http://mirrors.jenkins-ci.org/status.html

更换镜像

http://updates.jenkins-ci.org/update-center.json

https://mirrors.tuna.tsinghua.edu.cn/

http://mirror.esuni.jp/jenkins/updates/update-center.json

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

更新: 如果安装不上插件(我发现最新的war lts包) 可以先java -jar jenkins.war 然后停下



改成

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

插件目录需要备份

解压备份plugin.tar.gz
mv plugins /var/lib/jenkins/
chown -R jenkins.jenkins plugins/
service jenkins restart

最简单的java-helloworld自动构建之旅-手动mvn打包

mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword

cd /usr/local/src/
git clone https://github.com/lannyMa/java-helloword.git
cd java-helloworld
mvn clean
mvn package
cd target
java -jar testweb-v1.0.jar

最简单的java-helloworld自动构建之旅-配置jenkins自动编译打包

mvn安装和阿里云源配置参考: https://github.com/lannyMa/java-helloword



安装好jenkins后,直接开始新建项目:(默认你已安装pipline插件)

新建一个pipeline项目

配置pipeline

stage 'prepare'
node{sh "mvn -v" } node{
git "https://github.com/lannyMa/java-helloword.git"
state: 'clean'
sh 'mvn clean'
stage 'package'
sh 'mvn package'
stage 'test'
sh 'java -jar target/testweb-v1.0.jar'
}

构建



构建完毕!!!

以下是以前整理的一些jenkins目录细节,个人觉得没必要细究了.

我们主要关注这些

  • 安装目录
  • 数据目录
  • 日志目录
  • jobs目录
  • 插件目录
  • 数据目录 /var/jenkins_home

安装jenkins(物理机jar包方式)

选择lts版.

发现lts版的http://updates.jenkins-ci.org/update-center.json这个插件源可以更新插件,每周更新版的那个却没法更新,很蛋疼.

docker启动jenkins

参考: https://github.com/jenkinsci/docker/blob/master/README.md

But if you want to attach build slave servers through JNLP (Java Web Start): make sure you map the port: -p 50000:50000 - which will be used when you connect a slave agent.

8080是webui

50000是jnlp协议slave来通讯的.

docker run -d -u root \
-p 8080:8080 \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker \
-v /var/jenkins_home:/var/jenkins_home \
--name=jenkins \
jenkins

创建1个job相当于创建1个类,每次构建相当于一次类的实例化.

- 创建jobs

- 立即构建

- 查看jenkins目录

- jenkin启动后目录文件结构:
一般 /var/jenkins_home 或者/home/jenkins 或者 /root/.jenkins
- 主要有jobs(存放jobs的配置以及每次构建结果) plugin workspace文件夹
- 进入jobs
- 查看jobs的配置文件
- 查看plugin目录
- 每个插件1个文件1个目录

制作最简单的用于jenkins测试的基于mvn的war包:

http://www.cnblogs.com/iiiiher/p/7943097.html

https://github.com/lannyMa/trucks/tree/master

[CI]jenkins安装&插件管理&java-helloworld之旅的更多相关文章

  1. jenkins 安装插件失败

    大家在使用jenkins安装插件的时候经常遇到一下问题,就是插件由于网络或者墙的原因无法直接下载,出现下面截图的问题,处理办法有两种 第一种:更换源的问题jenkins->系统管理->管理 ...

  2. 真正加速Jenkins安装插件速度

    本文主旨 看到好多加速Jenkins安装插件速度的文章, 大多数教程中都是在插件配置里使用下边的url来替换原有的https://mirrors.tuna.tsinghua.edu.cn/jenkin ...

  3. [ci] jenkins kubernetes插件配置(容器模式)-通过jnlp

    有个小伙用sh结合jenkins搞的k8s cicd还不错 jenkins kubernetes插件 首先插件管理,搜索kubernetes plugin安装 配置kubernetes云 配置项目 执 ...

  4. Jenkins安装插件问题

    最近在电脑尝试安装Jenkins软件 安装插件的时候 一直报错 没有推荐插件提示一直报错 at java.lang.Thread.run(Unknown Source) Caused by: java ...

  5. jmeter-----如何安装插件管理?

    1.下载插件管理jar文件,http://www.jmeter-plugins.org/wiki/PluginsManager/ 2. 拷贝这jar文件到 \lib\ext文件夹里 3. 重新打开JM ...

  6. Jenkins的插件管理(安装和更新插件)

    使用Jenkins的编译部署项目需要依赖各种插件 下面安装Jenkins的各种插件: 1.登录Jenkins进入以下界面: 2.点击 系统管理 : 3.点击 管理插件 : 4.点击 可选插件 选择你需 ...

  7. android141 360 安装软件管理java代码

    AppManagerActivity package com.itheima52.mobilesafe.activity; import android.app.Activity; import an ...

  8. notepad++下载32位,安装插件管理

    下载32位地址: https://notepad-plus-plus.org/download/v7.6.4.html 下载插件: 链接: https://pan.baidu.com/s/1tRSo4 ...

  9. jenkins安装插件一直不动

    刷新界面即可,查看已安装的插件即可,这个时候已经安装完了,不用重启,直接使用插件即可

随机推荐

  1. 解决win10 64位 + Python3 安装PyAutoIt报不是有效win32应用程序的办法

    在win10 64位 + Python3的环境中,安装pyautoit第三方包的时候,报错提示为:不是有效win32应用程序.因为这个问题,进了python群,去寻求答案,却告知为,换32位的电脑,这 ...

  2. P3812 【模板】线性基

    P3812 [模板]线性基 理解 :线性基 类似于 向量的极大无关组,就是保持原来所有数的异或值的最小集合, 求解过程也类似,可以 O( 60 * n )的复杂度求出线性基,线性基有许多性质,例如 线 ...

  3. 橡皮筋进度条ElasticProgressBar

    橡皮筋进度条ElasticProgressBar 橡皮筋进度条是一个极具动画效果的进度条.该进度条不仅具有皮筋效果,还带有进度数据显示,让用户可以很清晰的看到当前的进度,可用于下载.加载进度等场景.E ...

  4. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  5. node加密

    var crypto = require('crypto'); //md5加密 exports.md5 = function (str) { var md5sum = crypto.createHas ...

  6. Python3从零开始爬取今日头条的新闻【三、滚动到底自动加载】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  7. oracle数据库实例,数据库的理解

    转自http://www.cnblogs.com/advocate/archive/2010/08/20/1804066.html 加深一下理解 数据库就是一个相片底片 实例就是相纸 一个底片可以冲多 ...

  8. HDU5293 : Tree chain problem

    问题即:选择价值和最多的链,使得每个点最多被一条链覆盖. 那么考虑其对偶问题:选择最少的点(每个点可以重复选),使得每条链上选了至少$w_i$个点. 那么将链按照LCA的深度从大到小排序,每次若发现点 ...

  9. BZOJ3565 : [SHOI2014]超能粒子炮

    若$a\leq 1000$,则整个$f$数列会形成$O(a)$段公差为$a$的等差数列. 否则$a^{-1}\leq 1000$,设$ai+b=f(i)$,那么有$i=a^{-1}f(i)-ba^{- ...

  10. PHP中new self()和new static()的区别

    1.new static()是在PHP5.3版本中引入的新特性. 2.无论是new static()还是new self(),都是new了一个新的对象. 3.这两个方法new出来的对象有什么区别呢,说 ...