Win下Jenkins-2.138源碼編譯及填坑筆記

源碼編譯篇java

一、 安裝JDK1.8-181,操做系統添加JDK環境變量。Java -version驗證一下。maven

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

二、 解壓Maven3.5.4到指定目錄(英文路徑)。操做系統添加Maven環境變量,接着配置Maven的conf\setting.xml文件。微服務

定位到55行: 配置本都Maven倉庫路徑。源碼分析

 
<localRepository>C:\jstao\soft\sprintbootjar\repository</localRepository>

定位到158行: 配置遠端阿里雲倉庫。性能

若是想學習Java工程化、高性能及分佈式、深刻淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友能夠加個人Java高級交流:854630135,羣裏有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給你們。單元測試

 
<!-- 阿里雲倉庫 --> <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>

三、 解壓Jenkins-2.1.38。解壓到英文路徑下。學習

四、 爲了顯示Jenkins是本身編譯和打包的,修改一下源碼。測試

打開文件war\pom.xml,定位到186行,將<finalName>標籤內容改成GeoDevOps阿里雲

 

五、 以管理員方式調出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文件。

六、 啓動運行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大型互聯網技術的視頻免費分享給你們。

檢查佔用地方,解除佔用,再次編譯,問題解決。

相關文章
相關標籤/搜索