源碼編譯篇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大型互聯網技術的視頻免費分享給你們。
檢查佔用地方,解除佔用,再次編譯,問題解決。