Win下Jenkins-2.138源码编译及填坑笔记
源码编译篇
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仓库路径。
<localRepository>C:\jstao\soft\sprintbootjar\repository</localRepository>
定位到158行: 配置远端阿里云仓库。
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<!--<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>-->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
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
如图所示,编译打包成功。为老头子换了个头像 - -

踩坑笔记篇
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就是这样,被占用也不告诉你是谁占用。

检查占用地方,解除占用,再次编译,问题解决。
Win下Jenkins-2.138源码编译及填坑笔记的更多相关文章
- Ubuntu 17.04版本下,opencv进行源码编译安装
本文主要针对Ubuntu 17.04版本下,opencv进行源码编译安装.开发环境主要针对python 对 openCV库的调用. 安装 gcc cmake 编译环境 sudo apt-get ins ...
- CentOS6.5下搭建LAMP环境(源码编译方式)
CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL) 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP ,WAMP,MAMP等.这里我介 ...
- hadoop-1.2.0源码编译
以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...
- Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程 在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
- elasticsearch5.5.3 源码学习 idea下源码编译
1.学习elasticsearch 源码,通过搜索“elasticsearch源码”,进行相关搜索. 2.因源码gradle编译,选择gradle-3.5可以编译通过,对应elasticsearc ...
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
- TensorFlow Python2.7环境下的源码编译(三)编译
一.源代码编译 这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_ ...
- Linux 下源码编译安装 vim 8.1
前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...
随机推荐
- Cmd命令 查看端口被占用
1)第一步 打开cmd命令窗口,输入命令:netstat -ano|findstr 输入端口号 2)第二步 继续输入命令:tasklist|findstr 第一步查询到的进程号 3)第三步 根据第二 ...
- javascript---split 和 join 的区别
//相同点 : split 和 join 都是对字符或字符串进行操作的 //split(切割字符串) : 把字符串根据切割符切割,返回数组 //第一个参数 分隔符 //第二个参数 返回数组中元素的个数 ...
- 性能测试学习 第八课--LR12中针对WebServices协议的三种脚本开发模式
一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...
- 在vue项目中mock数据
第一步:安装: 在命令行中执行: npm install mockjs; 第二步:定义index.js文件 我们新建一个mock文件夹,此文件夹中建一个index.js文件:在index.js中输入以 ...
- SSIS - 10.执行过程任务
一.创建批处理文件 在SSIS包中,执行过程任务可以用来运行应用程序或批处理文件.它执行时用到的输入.输出和参数可以在任务编辑器中进行设置. 在使用执行过程任务之前,我们需要先创建一个批处理文件,实现 ...
- Android程序员必知必会的网络通信传输层协议——UDP和TCP
1.点评 互联网发展至今已经高度发达,而对于互联网应用(尤其即时通讯技术这一块)的开发者来说,网络编程是基础中的基础,只有更好地理解相关基础知识,对于应用层的开发才能做到游刃有余. 对于Android ...
- Python内置函数(17)——divmod
英文文档: divmod(a, b) Take two (non complex) numbers as arguments and return a pair of numbers consisti ...
- 【java爬虫】---爬虫+jsoup轻松爬博客
爬虫+jsoup轻松爬博客 最近的开发任务主要是爬虫爬新闻信息,这里主要用到技术就是jsoup,jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非 ...
- java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...
- 并发编程(四)—— ThreadLocal源码分析及内存泄露预防
今天我们一起探讨下ThreadLocal的实现原理和源码分析.首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两 ...