Jenkins 概述
Jenkins,简单的说就是一个开源的持续集成服务器,是 Hudson 的继续。Jenkins 提供了易于使用的持续集成系统,使开发者更专注于业务逻辑的实现。Jenkins 能实时监控集成过程中的问题,提供详细的日志信息,还能以图表的形式显示项目构建的情况。
jenkins安装
方式一,下载jenkins.war
后通过tomcat
启动
Jenkins 架构
Stapler
Stapler
是一个将应用程序对象和URL
装订在一起的lib
库,使编写 web 应用程序更加方便。Stapler
的核心思想是自动为应用程序对象绑定URL
,并创建直观的URL
层次结构。
设置开发环境
开发jenkins
插件需要maven3和至少JDK6.0版本
参照:https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial
修改`~/.m2/settings.xml
配置文件
<settings>
<pluginGroups>
<pluginGroup>org.jenkins-ci.tools</pluginGroup>
</pluginGroups>
<profiles>
<!-- Give access to Jenkins plugins -->
<profile>
<id>jenkins</id>
<activation>
<activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->
</activation>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<mirrors>
<mirror>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
<mirrorOf>m.g.o-public</mirrorOf>
</mirror>
</mirrors>
</settings>
这可以让你使用`jenkins maven plugin`的简写,比如:使用`hpi:create`取代`org.jenkins-ci.tools:maven-hpi-plugin:create`
#### 设置eclipse开发环境
#### Stapler
`Stapler` 是一个将应用程序对象和 `URL` 装订在一起的 `lib` 库,使编写 `web` 应用程序更加方便。
#### 持久化
`Jenkins` 使用文件来存储数据,所有数据都存储在`$JENKINS_HOME`.
安装目录:`/var/lib/jenkins`
日志目录:`/var/log/jenkins/jenkins.log`
在`/var/lib/jenkins`目录下文件夹说明
jobs #jenkins项目配置路径
jobs/xxx/builds #项目每次构建记录
jobs/xxx/config.xml #项目配置文件
jobs/xxx/workspace #项目工作区,存储下载的代码和生成的文件
plugins #存储jenkins插件的目录
比如hudson.plugins.git.GitTool.xml文件 #保存插件全局信息
拓展点
Jenkins
的对象模型是可扩展的,通过 Jenkins
提供的可扩展点,我们可以开发插件扩展 Jenkins
的功能。到目前为止,Jenkins 已经支持超过 600 个插件,这些插件支持的功能涵盖了软件配置管理 (SCM)、软件测试、通知 (Notification)、报表等方面。
Jenkins 通过单独的类加载器加载每个插件以避免插件之间产生冲突。插件就像 Jenkins 内置的其他类一样参与到系统的活动中。另外,插件可以通过 XStream 持久化,可以由 Jelly 提供视图技术,可以提供图片等静态资源,插件中所有的功能可以无缝的加入到 Jenkins 内置的功能上。