跟隨jenkins當前編譯環境
A. 敏捷之路 C++ (一) jenkins配置-VS工程自動編譯基本配置
Windows安裝Jenkins主要有兩種方式
關於安裝這塊官方資料齊全就不浪費時間了。
接下來啟動 jenkins並按照默認設置一路下一步就行了。
成功啟動jenkins並檢查確認jenkins工作區無誤後就可以開始配置jenkins以及自動編譯VS項目的相關環境了。
建議: 所有需要安裝的工具例如git,python,svn等盡量不要安裝在Program Files中,自己重新指定一個沒有許可權問題,純英文無特殊符號及空格等的路徑。
接下來安裝插件
首先是使用vs項目必不可少的MSBuild插件
以及多源項目需要的Multiple SCMs plugin
如果你需要郵件通知則安裝Email Extension Plugin
建議安裝一個你的工程所需版本的Visual Studio
一方面MSBUILD可以直接用,另一方面如果自動編譯出問題 可以使用VS打開你的項目進行調試
通常一個相對比較大的多項目工程,如果不是一直嚴格按照標准配置,很難保證獲取工程可以成功編譯建議從以下幾個角度檢查
配置好了工程可以從遠端克隆一個新的直接編譯試一下。可以成功編譯就可以配置jenkins項目了。
添加賬號密碼時有時候第一次添加的會無效,那就再添加一次並選擇第二個。通常就可以了。
B. java Maven打包總結(Jenkins多模塊編譯部署)
原文地址: Java Maven打包總結(Jenkins多模塊編譯部署)
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個階段。
完成了項目編譯、單元測試、打包功能,但沒有把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打物液包)、install等8個階段。
完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠程maven私服倉庫
依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個階段。完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
可以看森和到主要區別在把生成的jar包最終存放的位置, package只管打包; install把打好的包放到了本地maven倉庫;deploy是同時放到本地倉庫和遠程maven私服
這里本地倉庫默認是 /root/.m2/repository/ ,具體配置在 ${M2_HOME}/conf/settings 的 localRepository 配置項決定。遠程私服倉庫一般是nexus,具體地址在項目的pom.xml中配置。比如
一般是進入父級目錄之後執行
如果是多級目錄罩春物的話,有時候並不一定是按照 具體的項目來 編譯,比如
這個時候如果一個項目一個項目來編譯會超級多,很繁瑣,這里是按照 subparentproject 來編譯,命令如下
有個注意的地方:
subparentproject 目錄下的pom.xml文件中一定有類型如下的配置
1、需要安裝插件 Extended Choice Parameter Plug-In 可以支持參數單選、多選
2、項目選擇"自由風格",而不是maven編譯
3、在「構建」 -> "執行shell" 中編寫 子模塊編譯腳本及其後續處理
具體配置如下圖
「構建」 -> "執行shell" 中的處理腳本
附加:
Linux Bash下字元串操作總結
C. 自動化部署工具jenkins,從此擺脫重復單調的工作
它是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟體平台,使軟體的持續集成變成可能。
有了它你可以免除手工編譯,發布代碼,上線更容易。節省的時間你可以喝杯咖啡,放鬆一下 ^_^
道路千萬條,熟悉第一條,我這里使用 Red Hat 家族衍生的 centos 上安裝Jenkins。
這里可以下載rpm包: http://pkg.jenkins-ci.org/redhat/
也可以如下操作:
安裝
將Jenkins存儲庫添加到yum repos,並從此處安裝Jenkins。
安裝穩定版
還有一個LTS YUM資源庫的LTS版本線
安裝Java
Jenkins需要Java才能運行,但默認情況下某些發行版不包含此內容。要安裝Open Java Development Kit(OpenJDK),請運行以下命令:
安裝完成後Jenkins 啟動之前的注意事項
默認情況是Jenkins是使用Jenkins用戶啟動的,但這個用戶目前系統並沒有賦予許可權,這里我們將啟動用戶修改為root;另外Jenkins默認埠是8080,這個跟tomcat的默認埠沖突,我們也修改一下默認埠。
找到 JENKINS_USER 和JENKINS_PORT ,修改為root和你需要的埠
啟動/停止
注意:如果收到以下錯誤消息,請確保已安裝Java:
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details.[FAILED]
禁用防火牆
有關CentOS Java的重要說明
Jenkins需要Java才能運行,但yum install jenkins不強制已經安裝了java。檢查以確保您已通過運行安裝了hava java java -version。為了進一步使CentOS用戶感到困難,默認的CentOS版本的Java與Jenkins不兼容。Jenkins通常最適合使用Java的Sun實現,由於許可原因,它不包含在CentOS中。
如果您獲得類似於以下內容的輸出,則表示您使用的是Java的默認(GCJ)版本,該版本不適用於Jenkins:
要解決此問題,您可能需要刪除GC的GCJ版本並安裝Sun兼容版本。
如果收到上面的輸出,請卸載默認的java:
然後在卸載Java之後(或者如果你根本沒有安裝Java那麼開始)。您需要安裝與Sun兼容的Java版本。最簡單的方法是使用OpenJDK,它可以通過EPEL存儲庫獲得(或者您可以直接從Oracle安裝官方 RPM)。要安裝OpenJDK,請運行以下命令:
根據您的CentOS版本,OpenJDK的軟體包名稱可能有所不同。使用yum search openjdk來檢查包的名稱。如果通過yum找不到OpenJDK,則可能需要安裝EPEL yum存儲庫。安裝後,您應該能夠獲得以下java -version輸出:
Ok,到此jenkins安裝完成。
接下來你可以在瀏覽器地址中輸入Jenkins網址,如:IP:埠,將顯示如下內容:
拷貝指定文件密碼,進入用戶自定義插件界面,建議選擇安裝官方推薦插件:
接下來是進入插件安裝進度界面:
等待一段時間之後,插件安裝完成,配置用戶名密碼:
OK,你可以使用jenkins來編譯、發布你的代碼了。oh,它支持從代碼庫中直接拉取代碼,git、svn都支持。趕快使用你的Spring boot、go試試吧。
D. 如何jenkins 中指定 maven和git環境
1.通過Jenkins web頁面添加Git plugin
Manage Jenkins->Manage Plugins->Available中選擇Git Plugin安裝,
注意要填寫user name和 email地址,否則日後會碰到git tag的錯誤
2.在Jenkins使用的機器上創建Git用戶所需要的公鑰
具體步驟參考前面Git server文章
http://blog.csdn.net/sheismylife/article/details/7204345
但是注意,要將最後生成的.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私服加快下載速度
如我這篇文章所述,用私服可以避免下載過慢問題,也可以繞過公司內部外網限制問題。
http://blog.csdn.net/sheismylife/article/details/7209722
Jenkins的.m2目錄路徑在:/var/lib/jenkins/.m2/
首先清空裡面所有的jar包,然後創建settings.xml文件,並編輯內容如下:
源碼列印?
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://S1:8081/nexus/content/groups/public</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>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</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分多鍾.