Jenkins 基础篇 - 基础设置
站点设置
刚搭建好 Jenkins 环境,你还需要做一些简单设置,让我们的 Jenkins 看起来是这么一回事,特别是你要用于生产环境的时候。首先就是域名配置,如果你为 Jenkins 服务分配了一个域名,通过 Nginx 反向代理的方式来访问 Jenkins 服务的话,当你访问 Jenkins 的【系统管理】界面时就会看到如下警告,提示反向代理设置有误,当前安装的下列组件已有警告发布:
我们需要去到【系统配置】里面做下设置,将 Jenkins URL 由之前默认的 IP 修改成域名:
还是在 Jenkins 的【系统管理】面板中,点击【配置显示哪些警告】,或者去到【全局安全配置】设置里面,找到【隐藏的安全警告】这个地方,在【安全警告...】里面将这些警告隐藏掉:
对于安全警告最好的做法是升级 Jenkins 版本,但是新版 Jenkins 界面管理差异较大,我们暂时就先将这些警告隐藏掉吧,玩透了 Jenkins 后面我们就可以使用新版的 Jenkins。
工具配置
我们利用 Jenkins 构建我们的项目时可能还需要一些其他工具,例如构建 Java 项目需要 JDK,Ant 管理的项目需要 Ant 工具,Maven 管理的项目需要 Maven 工具,Gradle 管理的项目需要 Gradle,nodeJs 项目需要 Node 和 Npm 等。我们要先将这些需要的工具下载离线安装包,解压到 Jenkins 可以访问的目录,特别强调下,不推荐采用系统全局安装我们需要的工具,否则某些项目需要不同的工具版本,那会搞得比较麻烦。采用离线安装包放在不同的目录,对于工具版本的切换非常方便。另外对于 Maven 或者 Gradle 项目,推荐使用 Maven Wrapper 或者 Gradle Wrapper,这样就可以让项目自己决定使用什么版本的工具。
Jenkins 默认运行环境是 OpenJDK,如果我们的项目构建需要用 OracleJDK,那我们就去 Oracle 官网下载具体的 JDK 版本。例如,我这里下载了一个 OracleJDK 1.8.0_241,把它放在了 /var/jenkins_home/software/jdk1.8.0_241
目录,还准备了一个 Maven,在 /var/jenkins_home/software/apache-maven-3.6.3
目录。
如果你不想自己去下载离线包安装,也不想在系统里面全局安装这些工具,还可以选择去到 Jenkins 的【系统管理】中的【全局工具配置】里面,这个界面可以设置需要的软件,目前支持配置安装 JDK、Git、Gradle、Ant、Maven 等工具。例如我这里配置了一个 JDK 的安装,点击【新增 JDK 】按钮,填写好 JDK 别名,选择好 JDK 版本,目前支持的 JDK 版本从 1.4 到 JDK 9 都有,我这里选最新的一个 JDK 8,使用 JDK 需要同意 Oracle 的许可协议,同意许可协议要求登录 Oracle 账号,目前在 Oracle 官网下载 JDK 也都是需要登录的,没有 Oracle 账号就去注册一个,有账号就直接登录,Jenkins 也集成了登录功能。
【全局工具配置】里面可以支持添加以下工具:
添加一个 JDK,选择 JDK 8:
登录 Oracle 账号,同意 JDK 的许可协议:
环境变量
通过【全局工具配置】添加的工具可以在 Jenkins 的任务里面直接使用,不用专门设置环境变量。如果是自己通过离线包解压的方式安装的工具,为了让 Jenkins 能够知道我们的工具在哪里,这就需要用到环境变量。还是在 Jenkins【系统配置】里面的【全局属性】下面,有个【环境变量】复选框,勾选上,增加环境变量键值对,例如我这里就设置了 JDK 和 Maven 的环境变量:
在进行 Maven 构建打包的时候就可以使用 $MAVEN_HOME/bin/mvn clean package
进行 Maven 打包,也可以用 export
命令临时调整环境变量:
[jenkins@asus-centos ~]$ export MAVEN_HOME=/var/jenkins_home/software/apache-maven-3.6.3
[jenkins@asus-centos ~]$ $MAVEN_HOME/bin/mvn -version
注意事项
在 Jenkins 上用到的工具可以是 【全局工具配置】或者自己离线安装然后配置环境变量,但是这两种方式请二选一,如果你既设置了【全局工具配置】又自己添加了环境变量,可能会产生奇怪问题。
我们的 Maven 和 Gradle 的设置访问一些私有制品仓库时需要配置账号密码,当在 Jenkins 节点上执行打包时 Jenkins 会在配置该节点的系统账号下的 .m2
或者 .gradle
目录去寻找,所以也需要将 Jenkins 主节点的 Maven settings.xml
或者 Gradle init.gradle
配置文件弄一份到其他节点的用户目录下的 .m2
或者 .gradle
目录中。
Jenkins 基础篇 - 基础设置的更多相关文章
- 2-STM32+W5500+GPRS物联网开发基础篇-基础篇学习的内容
https://www.cnblogs.com/yangfengwu/p/10936553.html 这次的基础篇为公开篇,将公开所有基础篇的资料和源码 现在说一下基础篇准备公开的内容:(大部分哈,要 ...
- Jenkins: 基础篇(环境配置)
自动化领域比较有影响力的开源框架jenkins,确实比较强大,易用.很多公司将其用来做持续即成CI(continuous integration).为了拓展和强化自己的软件设计生态系统,也将很久前使用 ...
- 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)
背景 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...
- Maven——基础篇
Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...
- C#多线程之基础篇3
在上一篇C#多线程之基础篇2中,我们主要讲述了确定线程的状态.线程优先级.前台线程和后台线程以及向线程传递参数的知识,在这一篇中我们将讲述如何使用C#的lock关键字锁定线程.使用Monitor锁定线 ...
- 2000条你应知的WPF小姿势 基础篇<15-21>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...
- C#多线程之基础篇2
在上一篇C#多线程之基础篇1中,我们主要讲述了如何创建线程.中止线程.线程等待以及终止线程的相关知识,在本篇中我们继续讲述有关线程的一些知识. 五.确定线程的状态 在这一节中,我们将讲述如何查看一个线 ...
- 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器
× 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
随机推荐
- 技术分享PPT整理(二):C#常用类型与数据结构
这篇博客起源于我对Dictionary.List.ArrayList这几个类区别的好奇,当时在改造公司的旧系统,发现很多地方使用了ArrayList,但我们平时用的多是泛型集合List,改造的时候要全 ...
- 亲测有效JS中9种数组去重方法
码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14555831.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...
- du和df的统计结果为什么会不一样?
du和df的统计结果为什么会不一样? 今天有个人问我du和df的统计结果为什么会不同,接下来我们分析一下. 我们常常使用du和df来获取目录或文件系统已占用空间的情况.但它们的统计结果是不一致的,大多 ...
- [状压DP]车II
车 I I 车II 车II 题目描述 有一个 n ∗ m n*m n∗m的棋盘 ( n . m ≤ 80 , n ∗ m ≤ 80 ) (n.m≤80,n*m≤80) (n.m≤80,n∗m≤80)要 ...
- [Fundamental of Power Electronics]-PART II-7.交流等效电路建模-7.1 引言
7.1 引言 变换器系统总是需要反馈的.例如,在典型的DC-DC变换器应用中,无论输入电压\(V_{g}(t)\)和输出有效负载\(R\)如何变化,都必须使输出电压\(v(t)\)保持恒定.这是通过构 ...
- jenkins构建maven聚合项目,发布jar包,可配置单独发布某个模块
https://blog.csdn.net/qq_42703181/article/details/109643330
- 重磅:谷歌强势回归! google大会报名
google退出中国已经很久了,有关google回归的消息也流传了很久,今天,我们迎来了回归的开幕式. 1.中国区开发者网站 不需要梯子,赶紧取感受下吧: https://developers.goo ...
- 关于Maven中<packaging>产生的一些问题
关于Maven中产生的一些问题 一.项目的打包类型 jar 默认的打包格式 war 打包成需要部署的项目 pom 父类型为pom类型 二. pom 简单来说,一个多模块项目通过一个父POM 引用一个或 ...
- Appium 自动化测试框架:关键字驱动+数据驱动
1. 关键字驱动框架简介 2. 框架结构说明 3. 框架代码实现 action 包 page_action.py business_process 包 case_process.py data_so ...
- Unity基础-脚本生命周期
理解Unity脚本的生命周期对游戏开发很重要,这篇文章对生命周期做一个记录和总结.Unity的脚本生命周期(消息),也就是在脚本运行时,自动并且按顺序执行的一系列函数.在unity官网中有对生命周期详 ...