博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CI]jenkins安装&插件管理&java-helloworld之旅
阅读量:6915 次
发布时间:2019-06-27

本文共 2939 字,大约阅读时间需要 9 分钟。

持续集成概述

  • 没有持续集成时的情况
    806469-20171129193518573-28202222.png

持续集成最佳实战

806469-20171129193544464-631577837.png

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

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_PORTsystemctl daemon-reloadservice jenkins restart工作目录设置Maven项目配置设置系统JDK ANT MAVENJenkins 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插件

9e792b8fgy1flz72zrb9jj20q00d7gou.jpg

默认的插件

9e792b8fgy1flz73xi9o2j20zo0f0di0.jpg
806469-20171130171257745-1686241341.png

常用的插件

9e792b8fgy1flz746u17yj20tt0f6jsm.jpg

其次手动安装pipeline插件

9e792b8fgy1flz72l6fdgj216b045mxh.jpg

更换插件镜像

9e792b8fgy1flz76a1ykjj20lt0jodgu.jpg
全部镜像
更换镜像

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

806469-20180126121130162-520885781.png
改成

插件目录需要备份

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

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

mvn安装和阿里云源配置参考:

cd /usr/local/src/git clone https://github.com/lannyMa/java-helloword.gitcd java-helloworldmvn cleanmvn packagecd targetjava -jar testweb-v1.0.jar

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

mvn安装和阿里云源配置参考:

9e792b8fgy1flz6zqh3w4j20t50e3dgj.jpg

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

新建一个pipeline项目

9e792b8fgy1flz77rg7yyj20fq06nwex.jpg

配置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'}

9e792b8fgy1flz78w94enj20fa09yq3d.jpg

构建

9e792b8fgy1flz79v28txj20n10c9tac.jpg
构建完毕!!!

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

我们主要关注这些

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

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

选择lts版.

9e792b8fgy1flwoq7zp15j20m90k8jtk.jpg

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

docker启动jenkins

参考:

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://uzicl.baihongyu.com/

你可能感兴趣的文章
理解linux安装软件
查看>>
php把数组、字符串 生成文件
查看>>
ionic 布局
查看>>
HashMap原理阅读
查看>>
golang 详解defer
查看>>
洗脑是什么
查看>>
MySQL表名大小写敏感导致的问题
查看>>
FastJSON 简单使用
查看>>
jdk目录详解及其使用方法
查看>>
mysql reset password重置密码
查看>>
[转]DOM 中 Property 和 Attribute 的区别
查看>>
Android在一个应用程序中启动另一个应用程序
查看>>
『原创』c#制作的号码mask程序
查看>>
一起谈.NET技术,Unobtrusive JavaScript in ASP.NET MVC 3
查看>>
HTTP长连接和短连接
查看>>
LoaderManager使用详解(二)---了解LoaderManager
查看>>
PHP——0128练习相关2——js点击button按钮跳转到另一个新页面
查看>>
BigDecimal 、BigInteger
查看>>
EtherCAT对PHY有要求?
查看>>
ios应用内下载并安装另一个应用
查看>>