詹金斯在一个地方完整介绍

詹金斯:

Jenkins 是一个用 Java 编写的开源持续集成工具。该项目是在与甲骨文发生争执后从哈德森派出的。

简而言之,Jenkins 是领先的开源自动化服务器。它采用 Java 构建,提供数百个插件,支持几乎任何项目的构建,测试,部署和自动化。

特点: Jenkins 提供开箱即用的以下主要功能,还可以通过插件添加更多功能:

易于安装:只需运行 java -jar jenkins.war,将其部署在 servlet 容器中。没有额外的安装,没有数据库。喜欢安装程序或本机包?我们也有这些。轻松配置:Jenkins 可以完全从其友好的 Web GUI 进行配置,具有广泛的即时错误检查和内联帮助。丰富的插件生态系统:Jenkins 几乎集成了每个 SCM 或构建工具。查看插件。可扩展性:Jenkins 的大多数部分都可以扩展和修改,并且很容易创建新的 Jenkins 插件。这允许你根据需要自定义 Jenkins。分布式构建:Jenkins 可以将构建/测试负载分配给具有不同操作系统的多台计算机。为 OS X,Linux 和 Windows 构建软件?没问题。

安装:

$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :

参考: https//wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

参考: http//www.vogella.com/tutorials/Jenkins/article.html

参考: https//wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

JENKINS_HOME 目录 Jenkins 需要一些磁盘空间来执行构建并保存存档。你可以从 Jenkins 的配置屏幕中查看此位置。默认情况下,它设置为〜/ .jenkins,但你可以通过以下方式之一更改此设置:在启动 servlet 容器之前,将“JENKINS_HOME”环境变量设置为新的主目录。将“JENKINS_HOME”系统属性设置为 servlet 容器。将 JNDI 环境条目“JENKINS_HOME”设置为新目录。有关如何为容器执行此操作的详细信息,请参阅容器特定文档集合。你也可以在使用 Jenkins 一段时间后更改此位置。为此,请完全停止 Jenkins,将内容从旧的 JENKINS_HOME 移动到新的主页,设置新的 JENKINS_HOME,然后重新启动 Jenkins。

JENKINS_HOME

+- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)

詹金斯建立工作:

在 Jenkins 中创建新的构建作业很简单:只需单击 Jenkins 仪表板上的新建作业菜单项即可。Jenkins 支持几种不同类型的构建作业,当你选择创建新作业时,这些作业将呈现给你

自由式软件项目

Freestyle 构建作业是通用构建作业,可提供最大的灵活性。

Maven 项目 “maven2 / 3 项目”是一个专门适用于 Maven 项目的构建工作。Jenkins 了解 Maven pom 文件和项目结构,并且可以使用从 pom 文件中收集的信息来减少设置项目所需的工作。

工作流程

协调可以跨越多个构建从属的长时间运行的活动。适用于建造管道和/或组织不易适应自由式工作类型的复杂活动。

监视外部作业监视外部作业构建作业使你可以密切关注非交互式进程,例如 cron 作业。

多配置作业多配置项目(也称为矩阵项目)允许你在许多不同的配置中运行相同的构建作业。这个强大的功能可用于在许多不同的环境中测试应用程序,使用不同的数据库,甚至在不同的构建机器上。

1.构建软件项目(自由风格)

Jenkins 可用于执行典型的构建服务器工作,例如执行连续/官方/夜间构建,运行测试或执行一些重复的批处理任务。这在詹金斯被称为自由式软件项目。设置项目转到 Jenkins 首页,选择 New Job,然后选择“Build a free-style software project”。此作业类型包含以下元素:可选 SCM,例如源代码所在的 CVS 或 Subversion。用于控制 Jenkins 何时执行构建的可选触发器。某种构建脚本执行构建(ant,maven,shell 脚本,批处理文件等),其中实际工作发生可选步骤以从构建中收集信息,例如存档工件和/或记录 javadoc 和测试结果。

非源控制项目的构建有时需要仅为演示目的构建项目,或者无法访问 SVN / CVS 存储库。通过选择在源代码管理下将项目配置为,你必须:

  1. 至少构建一次项目,(它会失败),但 Jenkins 将创建结构 jenkins / workspace / PROJECTNAME /
  2. 将项目文件复制到 jenkins / workspace / PROJECTNAME /
  3. 再次构建并适当配置

詹金斯设置环境变量

当 Jenkins 作业执行时,它会设置一些你可以在 shell 脚本,批处理命令,Ant 脚本或 Maven POM 中使用的环境变量。单击 ENVIRONMENT_VARIABLE 查看变量列表

配置自动构建

可以定期触发 Jenkins 中的构建(按计划,在配置中指定),或者在检测到项目中的源更改时触发,或者可以通过请求 URL 自动触发它们:

HTTP:// YOURHOST /詹金斯/工作/ PROJECTNAME /编译

这允许你将 Jenkins 构建挂钩到各种设置中。有关更多信息(特别是在启用安全性的情况下执行此操作),请参阅远程访问 API。

根据源更改构建

你可以让 Jenkins 轮询你的修订控制系统以进行更改。你可以使用与 Unix / Linux 上的 crontab 相同的语法指定 Jenkins 轮询修订控制系统的频率。但是,如果你的轮询周期短于轮询修订控制系统所花费的时间,则每次更改最终可能会有多个版本。你应该将轮询周期调整为长于轮询修订控制系统所花费的时间,或者使用提交后触发器。你可以检查每个构建的轮询日志,以查看轮询系统所需的时间。

或者,你可以使用 URL 触发器(如上所述),但使用/ polling 而不是 URL 末尾的/ build,而不是按固定间隔进行轮询。这使得 Jenkins 对 SCM 进行了轮询,而不是立即构建。这可以防止 Jenkins 运行构建,而不会对影响与作业无关的模块或分支的提交进行相关更改。使用/轮询时,必须配置作业以进行轮询,但计划可以为空。

通过电子邮件构建(sendmail)

如果你拥有系统的 root 帐户并且使用的是 sendmail,我发现最容易调整/ etc / aliases 并添加以下条目:jenkins-foo:“| / bin / wget -o / dev / null

http:// YOURHOST / jenkins / job / PROJECTNAME / build

然后运行 newaliases 命令让 sendmail 知道更改。每当有人向“jenkins-foo @ yoursystem”发送电子邮件时,都会触发新版本。有关配置 sendmail 的更多详细信息,请参阅此处。通过电子邮件构建(qmail)使用 qmail,你可以按如下方式编写/var/qmail/alias/.qmail-jenkins:| / bin / wget -o / dev / null http:// YOURHOST / jenkins / job / PROJECTNAME / build

2.构建 Maven 项目

Jenkins 提供专门用于 Maven 2/3 的工作类型。这种工作类型将 Jenkins 与 Maven 2/3 深度集成,与更通用的自由式软件项目相比,具有以下优势。

Jenkins 解析 Maven POM 以获取完成其工作所需的大量信息。结果,配置量大大减少。

詹金斯听取了 Maven 的执行情况,并确定了自己应该做什么。例如,当 Maven 运行测试阶段时,它将自动记录 JUnit 报告。或者如果你运行 javadoc 目标,Jenkins 将自动记录 javadoc。

Jenkins 自动在项目之间创建项目依赖项,这些项目之间声明了 SNAPSHOT 之间的依赖关系。见下文。因此,大多数情况下,你只需要配置 SCM 信息以及你希望运行的目标,Jenkins 将会找出其他所有内容。

此项目类型可以自动提供以下功能:

归档由构建生成的工件

发布测试结果

触发作为下游依赖项的项目的作业

将工件部署到 Maven 存储库

按模块分组测试结果

(可选)仅重建已更改的模块,从而加快构建速度

从模块依赖项自动构建链接

Jenkins 从你的 POM 读取项目的依赖项,如果它们也构建在 Jenkins 上,则触发器的设置方式使得其中一个依赖项中的新构建将自动启动项目的新构建。Jenkins 了解 POM 中的各种依赖关系。即父母 POM

<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project

此过程将版本考虑在内,因此你可以在同一个 Jenkins 上拥有项目的多个版本/分支,并且它将正确地确定依赖项。请注意,不支持依赖版本范围,请参阅[ https://issues.jenkins-ci.org/browse/JENKINS-2787] [1 ]

可以按需禁用此功能 - 无论何时构建 SNAPSHOT 依赖关系,请参阅配置选项 Build

安装:

1。进入 Manage Jenkins >>配置系统

  1. 在 maven 标签中“点击 maven 安装……

你可以让 Jenkins 自动安装特定版本的 Maven,或者提供本地 Maven 安装的路径(你可以根据需要为你的构建项目配置多个版本的 Maven,并为不同的项目使用不同版本的 Maven。如果勾选自动安装复选框,Jenkins 将为你下载并安装所请求的 Maven 版本,并将其安装到 Jenkins 主目录中的 tools 目录中。

如何使用它

首先,你必须配置 Maven 安装(如果你使用 DEV @ cloud,则可以跳过此步骤)。这可以通过进入系统配置屏幕(管理 Jenkins->配置系统)来完成。在“Maven 安装”部分中,1)单击添加按钮,2)为其命名,例如“Maven 3.0.3”,然后 3)从下拉列表中选择版本。

现在,Jenkins 将自动安装此版本(例如,在任何新的构建机器上),从 Apache 下载并解压缩。

创建一个新的 Maven 作业:

  1. 单击左侧的“新建作业/新项目”
  2. 给它起个名字
  3. 选择“构建 Maven 2/3 项目”
  4. 保存你的工作

现在你需要配置你的工作

  1. 选择要使用的 SCM(例如使用 git)

  2. 选择 maven 目标来调用

  3. 添加存储库 URL 和凭据。

  4. 检查用户私有 maven 回购:

你还可以定义相同的客户路径。

5。建设项目

现在单击 build 来构建项目,然后单击左侧 Build Executor Status 中的进度条,观察 jenkins 安装 Maven,签出项目,并使用 maven 构建它。

记录:

https://wiki.jenkins-ci.org/display/JENKINS/Logging

脚本控制台:

用于故障排除,诊断或批量更新作业 Jenkins 提供了一个脚本控制台,可让你访问所有 Jenkins 内部。这些脚本是用 Groovy 编写的,你可以在这个页面中找到它们的一些示例。