1. 如何 編譯 jenkins 插件
系統管理--管理插件--高級--瀏覽-上傳插件即可 會提示重啟jenkins,--重啟後插件安裝成功 下載的插件是.zip格式的,改成.hpi後綴名即可
2. 如何在jenkins 構建 github工程
搭建持續集成首先要了解什麼是持續集成,帶著明確的目標去搭建持續集成環境才能讓我們少走很多彎路。持續集成(Continuous integration)簡稱CI,是一種軟體開發的實踐,可以讓團隊在持續集成的基礎上收到反饋並加以改進,不必等到開發的後期才尋找和修復缺陷。當然要明白的是持續集成環境的搭建也不是一勞永逸的,隨著軟體項目復雜度的增加,持續集成的環境同樣要加以維護以確保集成環境的可靠性。
持續集成的重要要素:1.統一的代碼庫。
2.CI伺服器
3.自動化測試和構建的腳本
4.Slaves
持續集成的流程:CI伺服器控制持續集成的整個過程,輪詢代碼庫更新,根據預定義的腳本進行項目的構建,伺服器將任務分配到Slave端。這就是整個持續集成的過程,我們需要根據我們的項目需求,制定好一個完善的持續集成方案,然後根據方案選擇CI伺服器和版本管理軟體,我們的項目選擇了Jenkins+Github的持續集成環境,這也是我要主要和大家講述的。
為什麼要選擇Jenkins?
Jenins是現在非常流行的持續集成CI伺服器,這與它的前身Hudson也有著很大的關系,Jenkins易於安裝,不需要資料庫的支持,直接通過Web界面進行配置,而且集成了RSS/Email的通知機制,支持分布式構建,具有豐富的插件,這些都是Jenkins相比其他持續集成伺服器的優勢所在。
對於版本控制軟體的選擇要看項目需要了,可能是SVN也可能是Git,一般來說Jenkins都有提供插件支持,下面講解一下Jenins+Github持續集成環境搭建的細節。
這個持續集成環境構建的主要流程就是Jenins會在後台運行,輪詢版本控制的存儲庫,當發現版本庫出現變更,就會通過預定義的構建腳本進行項目的構建,Jenkins會根據項目需求將構建的任務分配到Slave端。一般的項目構建過程主要分為自動化編譯和自動化測試兩個階段,這同樣是你腳本發揮作用的階段。
1.Jenkins安裝
進入Jenkins官方網站下載最新的Jenkins,Jenkins提供war包的下載和各種操作系統的安裝文件,選擇war包即可。
Jenkins的啟動方法有兩種:
第一種是使用tomcat直接打開,就是把jenkins.war放入tomcat下的 webapps目錄下,當啟動jenkins時,就會自動在webapps下建立jenkins目錄。然後再瀏覽器的地址欄輸入
另一種方法要確保系統中安裝了jdk,並且配置了環境變數,檢測方法就是在命令行輸入java回車後有多行的命令符提示。直接在命令行輸入java -jar jenkins.war即可啟動jenkins,默認會運行在8080埠,切換到瀏覽器的地址欄輸入http;//localhots:8080,localhost可以改成ip地址。
看到Jenkins的頁面說明jenkins已經部署成功了。2.插件安裝
在"系統管理->插件管理"下可以看到Jenkins預設安裝了CVS,Subversion,Maven和SSH,這些主要是版本控制的軟體的相應插件,不過我們使用的是GitHub進行版本控制,所以要在可選插件中選擇安裝Git plugin和GitHub plugin插件,安裝之後重新啟動就可以看到新的插件已經生效。3.環境配置
進入"系統管理->系統設置"設置Jenkins的相關參數。主要是設置Git和GitHub插件的參數,在Git下的Path to executable一欄添加本機的git.exe的路徑,在Git plugin下的添加本地Git的user.name和user.email的信息,在GitHub Web Hook下添加GitHub賬戶的相關信息。如果想要使用郵件的功能,需要在郵件通知的一欄添加SMTP伺服器和郵箱的相關信息,添加後點擊Test的按鈕測試一下能否正常發送郵件,這一功能可以在後面的項目中使Email Notification功能得以正常使用。
4.構建項目
點擊"新Job",輸入"任務名稱",選擇"構建一個自由風格的軟體項目",點擊"OK"。系統自動進入"任務配置"界面。5.配置構建方法
在GitHub project中輸入git地址。 在"源碼管理->Git"下的Repository URL輸入Repository的Git地址(PS:可以選擇分支)。
在"構建觸發器"中選擇"Build when a change is pushed to GitHub "和"Poll SCM ",這兩項的作用分別是當GitHub有版本庫更新時觸發Jenkins進行構建和定期檢查版本庫是否有更新,如果有更新則觸發Jenkins進行構建。這里要注意Schele語法,例如"*/2 * * * *"表示每隔2分鍾檢查一次。
點擊增加構建步驟,選擇Execute Windows batch command,並輸入
"%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32",devenv.com是MSVC提供的命令行構建工具,這里的"%VS10COMNTOOLS%..\IDE\devenv.com"為devenv.com的路徑,如果沒有配置響應的環境變數,構建的時候就會找不到路徑,所以可以用devenv.com的實際路徑代替。在"構建後操作"中可以添加發送郵件的相關信息。
點擊保存,項目的配置就完成了,點擊立即構建,Jenkin就會從github上將代碼clone下來,這里我在github上存放了一個HelloWorld的vs項目,所以我的命令行為"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln" /Build "Debug|Win32",然後自動編譯項目,如果構建成功會是藍色標記,如果構建失敗會是紅色標記。
構建完成後可以在項目中看到項目構建的具體信息,如工作區、變更集和每次構建的控制台輸出等。這就是一個基本的基於Jenkins和GitHub的持續集成環境的搭建。
3. 請問Jenkins如何配置自動或定時編譯
打開job的配置界面,在構建觸發器欄下有Poll SCM(定時檢查源碼變更並構建)和Build periodically(周期進行項目構建,不關心源碼是否變更)選擇,打開它們後面的問號,有很明確的介紹和實例
4. jenkins編譯打包需要多長時間
一般添加節點時指定jenkins的主目錄,構建的項目一般就在這個目錄下的workspace目錄下
5. jenkins怎麼編譯多個target
一直停留在這步
通過google,發現jenkins pull下來的代碼可能是找不到target,必須將target設置為shared。如下圖:將target的shared勾選上就可以了。
6. jenkins控制台輸出編譯錯誤怎麼回事
1、 設置jenkins所在伺服器環境變數,右鍵我的電腦→屬性→高級系統設置→環境變數,添加JAVA_TOOL_OPTIONS
2、修改Tomcat配置,進入apache_tomcat/conf文件夾下,編輯server.xml,在Connector port="8080"後面加入useBodyEncodingForURI="true"
<Connector port="8080" useBodyEncodingForURI="true" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3、啟動tomcat,運行jenkins,進入系統管理→系統設置,在全局屬性處勾選Environment variables,添加編碼環境變數LANG=zh_CN.UTF-8
7. jenkins git+maven 編譯怎麼知道編譯成功
1.通過Jenkins web頁面添加Git plugin
Manage Jenkins->Manage Plugins->Available中選擇Git Plugin安裝,
注意要填寫user name和 email地址,否則日後會碰到git tag的錯誤
2.在Jenkins使用的機器上創建Git用戶所需要的公鑰
具體步驟參考前面Git server文章
但是注意,要將最後生成的.ssh目錄下的公鑰和私鑰文件復制到/var/lib/jenkins/.ssh目錄下,否則git clone命令會報錯
3.修改jenkins目錄許可權
chmod -R 777 /var/lib/jenkins
4.現在可以通過web頁面創建一個項目Test,然後設置該項目使用Git作為版本管理。
並且設置repository路徑,比如我的:git@S1:cml.git
5.在build選項的pom文件指定你需要執行的pom.xml路徑
比如我的一個測試工程名叫client,是個maven工程,我設置為client/pom.xml
6.現在可以點擊左側的Build now進行測試
一切OK,則沒有錯誤日誌。在Build History中可以看到測試結果,有沒有錯誤。
7.Email發送設置
在Manage Jenkins->Configure System->Email Notification中,設置SMTP發送的基本信息,點擊Advanced,可以填寫用戶名和密碼。還有一個測試按鈕可以用來發送測試設置是否正確。
同時在Test項目中的Building Settings打勾選中E-mail
Notification,點擊右邊的問號,會出現幫助文檔,說明在四種情況下會發送email,填寫接受email的地址,然後故意將client代碼
修改到不能編譯通過。然後點擊Build now按鈕測試一下。果然收到email.
8.檢查代碼更新並編譯
可以通過Poll SCM來設置定時檢查編譯功能
比如*/5 * * * * 就是每隔5分鍾檢查一次,如果git倉庫中有更新,則執行build操作。
9.使用Maven加快下載速度
如我這篇文章所述,用可以避免下載過慢問題,也可以繞過公司內部外網限制問題。
Jenkins的.m2目錄路徑在:/var/lib/jenkins/.m2/
首先清空裡面所有的jar包,然後創建settings.xml文件,並編輯內容如下:
源碼列印?
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url></url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url></url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url></url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
現在點擊build now測試一下,打開console output,看看命令行輸出結果,如果發現從S1下載jar包,就正確。和不用的比較了一下,節省了1分多鍾.
8. VS程序編譯通過,jenkins構建錯誤,無法識別新的語法,應該是 .NetFramework的問題,不知道應該如何處理
在/etc/profile配置java的環境變數: 你的mvn 項目是用哪個版本的jdk.,就要配置那個版本的jdk。 強制保存文件命令:w !sudo tee % 此時在進入項目執行:$ git pull origin master 繼續mvn clean install 一、可執行的JAR文件使用Maven 構建一個JAR 文件比較容易:只要定義項目包裝為「jar」,然後執行包裝生命周期階段即可。但是定義一個可執行JAR 文件卻比較麻煩。採取以下步驟可以更高效: 1、在您定義可執行類的 JAR 的MANIFEST.MF 文件中定義一個main類。(MANIFEST.MF 是包裝您的應用程序時 Maven 生成的。) 2.、找到您項目依賴的所有庫。 3、 在您的MANIFEST.MF 文件中包含那些庫,便於您的應用程序找到它們。您可以手工進行這些操作,或者要想更高效,您可以使用兩個 Maven 插件幫助您完成:maven-jar-plugin 和 maven-dependency-plugin
9. jenkins git怎麼自動編譯工程
當時也是花費了不少時間來配置Jenkins自動打包的問題,覺得還是需要記錄一下。 1.安裝Jenkins,這個很簡單,不需要多說。 2.下載Git Plugin,Gradle Plugin,Android Emulator Plugin(這個可以配置SDK路徑,覺得這個插件挺好)
10. jenkins可以實現多個slave編譯同一套代碼嗎
甲狀腺頤攪不嚴旅業