前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Win下Jenkins-2.138源码编译及填坑笔记

Win下Jenkins-2.138源码编译及填坑笔记

作者头像
java架构师
发布2019-01-28 17:14:20
9390
发布2019-01-28 17:14:20
举报
文章被收录于专栏:Java架构师进阶Java架构师进阶

源码编译篇

1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。

注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。

2、 解压Maven3.5.4到指定目录(英文路径)。操作系统添加Maven环境变量,接着配置Maven的conf\setting.xml文件。

定位到55行: 配置本都Maven仓库路径。

C:\jstao\soft\sprintbootjar\repository

定位到158行: 配置远端阿里云仓库。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

<!-- 阿里云仓库 -->alimavencentralaliyun maven<!--<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>-->http://maven.aliyun.com/nexus/content/groups/public/

3、 解压Jenkins-2.1.38。解压到英文路径下。

4、 为了显示Jenkins是自己编译和打包的,修改一下源码。

打开文件war\pom.xml,定位到186行,将<finalName>标签内容改为GeoDevOps

5、 以管理员方式调出cmd,进入到Jenkins解压目录。

以下环境操作需联网(校验和编译需要下载依赖文件)

5.1执行命令:mvn validate

第一次校验费点时间,需要耐心等待。

开始检验Jenkins项目……

如图所示,校验成功。我是第二次校验,速度比较快。

5.2 接着,执行命令:mvn clean install -Dmaven.test.skip=true跳过单元测试部分编译。

如果想要执行单元测试可以使用命令:mvn clean install

第一次编译费点时间,需要耐心等待。

开始编译打包Jenkins项目……

如图所示,编译打包成功。我是第二次校验,速度比较快。

5.3编译打包后,可以在war\target目录下看到GeoDevOps.war文件。

6、 启动运行GeoDevOps.war。

执行命令java -jar GeoDevOps.war

访问http://localhost:8080

如图所示,编译打包成功。为老头子换了个头像 - -

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

踩坑笔记篇

1. 用GitHub上最新版本Jenkins(Jenkins-2.139-SNAPSHOT)源码编译,编译途中有些依赖包找不到,最后不得不推倒从来,下载了稳定版本源码Jenkins-2.138。回头看Jenkins-2.139-SNAPSHOT是正在开发的不稳定版本。所以推荐使用稳定的release版本源码编译。

直接下载下来的不稳定版本是这样的:

稳定的release版本是这样的:

2. 官网说JDK需要Java Development Kit (JDK) 8。我当时用的JDK1.8.0-65,以为没问题。但是校验的时候出错了!后面换成JDK1.8-181问题解决。JDK需要jkd1.8.0-101以上。

3. 编译打包时候,提示包依赖无法解决,导致无法编译通过。我到本地库去找,发现没有该jar包。分析可能是阿里云远端maven库,和http://repo.jenkins-ci.org/public/仓库冲突导致。于是,手动下载该jar包和对应.POM文件到本地仓库。问题解决。

4. 粗心大意,使用电脑原先安装的Maven-3.3.9版本编译导致掉坑。Jenkins-2.138要求Maven版本3.5.3以上。

5. 再次编译可能遇见问题。

执行命令:mvn clean install -Dmaven.test.skip=true

提示war\target目录无法删除,导致编译失败。

尝试手动删除,依然发现文件被占用,window就是这样,被占用也不告诉你是谁占用。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

检查占用地方,解除占用,再次编译,问题解决。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档