Jenkins 源代码编译
最近一直想写一个关于 Jenkins 管理的 InelliJ 插件,但是尝试很多次总是在登录认证上面失败,各种办法都不起作用,而且官方的文档含糊不清,就动起了从源代码编译在开发环境中进行调试。
废话少说,下面开始说明 Jenkins 的编译过程。
环境准备
- 首先,JDK 环境是必须的了,而且要设置好 JAVA_HOME 环境变量,因为 Maven 会使用到,我这里使用的是最新的 Java 8 1.8.0_112。
- 然后需要的就是 Maven 了,我这里使用的是 3.3.9
- 由于要使用 Git 来 checkout 源代码,需要使用合适的 Git 客户端,我这里使用的是 macbook 上自带的 Git 命令
- 开发环境我使用的是开源版本的 IntelliJ,这个 IDE 使用起来感觉要比 eclipse 更加顺手一些
Checkout Jenkins 源代码
Jenkins 的源代码在 GitHub 上面可以直接找到,链接为 https://github.com/jenkinsci/jenkins。在克隆源代码的时候建议使用 HTTPS 协议,SSH 可能会和你本地的 SSH 秘钥发生冲突。代码克隆命令如下:
git clone https://github.com/jenkinsci/jenkins.git
配置 Maven
由于 Jenkins 使用了修改过的 Jetty Maven 插件,而且还有其他插件的依赖库都不是在 central repository 上管理,所以需要先修改默认的 settings.xml。个人强烈建议修改用户目录下面的那个 settings.xml 文件,而不要去直接修改安装目录下面的配置文件。具体如下
- 到用户根目录,打开 .m2 目录,如果没有,请手工新建一个 .m2 文件夹
- 找到 settings.xml( ~/.m2/settings.xml )。如果没有这个文件,从 $M2_HOME/conf/settings.xml 复制一份过来
- 插入如下配置内容,当然要留意保证 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
在命令行终端界面,切换到 Jenkins 源代码所在目录,然后执行以下 maven 命令
mvn -Plight-test install
如果 maven 配置正确并确保网络访问,以上命令就可以编译自己所需要的版本的 jenkins. 如果要编译特定版本的 Jenkins,也可以在克隆完成之后,使用 Git checkout 命令切换到特定的分支(branch)或者标签。
参考资料:
- https://wiki.jenkins-ci.org/display/JENKINS/Building+Jenkins
- https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingUpEnvironment
Jenkins 源代码编译的更多相关文章
- 使用Jenkins自动编译 .net 项目
使用Jenkins自动编译我的.net 项目 1.Jenkins是什么? Jenkins是一个可扩展的持续集成的引擎,主要用于持续自动的构建.测试软件项目 监控一些定时执行的任务. 2.安装配 ...
- 源代码编译安装Python3.5.2
由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...
- Android 6.0 源代码编译实践
http://www.judymax.com/archives/1087 Android 6.0 源代码编译实践 https://mirrors.tuna.tsinghua.edu.cn/help/A ...
- Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
说明:本教程主要包括以下三个部分: 1. 源代码编译安装Nginx 2. 源代码编译安装php以及mysql.redis扩展模块 3. 配置虚拟主机 文中所涉及安装包程序均提供下载链接,欢迎使用 运行 ...
- 3DSlicer源代码编译过程vs2008+windows xp [转]
一 下载QT源代码编译 1. 简述 在 Windows2000/xp/vista 下,安装 VS2008, QT 4.7.2 :并在 VS2008上建立 QT 的集成开发环境,利用 VS2008 ...
- 官方发布的新版本Qt已经不支持XP了,要自己从源代码编译
官方发布的新版本Qt已经不支持XP了,要自己从源代码编译,编译选项里有个-target项,用来提供XP支持的,编译时加上-target xp就可以了 http://www.qtcn.org/bbs/r ...
- Ubuntu通过源代码编译安装Octave 4.0
本教程/笔记,意在指导在Ubuntu及其它Linux系统上怎样通过源代码安装Octave. Octave简单介绍 Octave是GNU旗下取代matlab的数学工具软件,语法与matlab高度兼容.而 ...
- Storm-0.9.2-incubating源代码编译打包
近期遇到一些同学询问Storm-0.9.2-incubating源代码编译打包的问题,现将编译步骤说明例如以下: 1.凝视掉project各pom文件里关于maven插件(maven-gpg-plug ...
- 源代码编译安装 PHP5.5.0,解决curl_exec訪问HTTPS返回502错误的问题
近期碰到一个奇怪的问题. PHP使用 curl_exec 訪问 HTTPS 网页时, 返回502错误, 訪问HTTP网页时没有问题, 用 echo phpinfo() ; 查看. 支持op ...
随机推荐
- Java设计模式(7)——装饰者模式
转载:http://blog.csdn.net/yanbober/article/details/45395747 一.装饰者模式的定义 装饰者( Decorator )模式又叫做包装模式.通过一种对 ...
- docker-compose示例与命令介绍
一.docker-compose.yml示例 version: ‘2‘ #指定compose版本 services: log: #服务名称 image: vmware/harbor-log #指定镜像 ...
- 用Swift实现一款天气预报APP(二)
这个系列的目录: 用Swift实现一款天气预报APP(一) 用Swift实现一款天气预报APP(二) 用Swift实现一款天气预报APP(三) 上篇中主要讲了界面的一些内容,这篇主要讨论网络请求,获得 ...
- MFC中的一般经验之谈4
MFC中的窗口控件,都是从CWnd类中继承的.MFC以及ResourceEditor支持的所有控件称为标准控件. 在对话框资源文件夹下,然后邮件新建添加新对话框,新建对话框后要在资源视图中的对话框文件 ...
- MSF漏洞攻击练习系统 – Metasploitable2
Metasploitable2 是Metasploit团队维护的一个集成了各种漏洞弱点的Linux主机(ubuntu)镜像,方便广大黑扩跟安全人员进行MSF漏洞测试跟学习,免去搭建各种测试环境.VMw ...
- 史上最详细的Hadoop环境搭建(转)
转载的文章,请告知侵删.本人只是做个记录,以免以后找不到. 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技 ...
- window系统JAVA开发环境的搭建
1.java JSK工具包安装教程http://www.runoob.com/java/java-environment-setup.html 2.Eclipase编辑器安装包教程 http://ww ...
- .net core 2.0 mvc 初步学习
mvc_study *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impor ...
- C#基础笔记(第十五天)
1.Directory//File 文件 Path 路径 FileStream StreamReader StreamWriter 流 Directory 文件夹 目录 //创建文件夹 Directo ...
- Delphi XE7编译安卓程序出错了
昨天编译一个先前可以正常运行的程序,忽然就不能编译了,总是提示这个错误,经过一番排查,终于搞定了,原因:删除了安卓lib引用的JAR和单元文件.如果你也出现这个问题,打开工程全部目录,看一下是否有打小 ...