Hudson作用: 自動(定時)將項目編譯,打包,發布,調用junit測試,最后生成測試結果
持續集成和代碼質量管理手
Hudson 是一個可擴展的持續集成引擎。主要用于:1.持續、自動地構建/測試軟件項目。2.監控一些定時執行的任務。目前持續集成(CI)已成為當前許多軟件開發團隊在整個軟件開發生命周期內側重于保證代碼質量的常見做法。它是一種實踐旨在緩和和穩固軟件的構建過程。
如果你想在Hudson的控制臺,或者項目配置頁面里賦予插件一些參數,或者在project或者build頁面里現實點什么,那么你就需要寫一個jelly腳本并將他放在resources文件夾里,并且包路徑一一對應。<br> 舉個例子,如果你有個叫SayHello的類,位于com.somecompany.myapp包路徑下,它需要使用一個config.jelly,以便于可以在項目的配置頁面對其進行配置。那么這個jelly腳本在resources里的包應該是com.somecompany.myapp.SayHello,這樣Hudson就會自動地調用它。<br> 而且在Hudson中,jelly腳本有一定的命名規則。比如,config.jelly是用于顯示在項目配置頁面中的創建,而global.jelly是用于Hudson設置的。
GAV是Maven坐標最基本最重要的組成部分,但GAV不是全部。還有一個元素叫做分類器(classifier),90%的情況你不會用到它,但有些時候,分類器非常不可或缺。 舉個簡單的例子,當我們需要依賴TestNG的時候,簡單的聲明GAV會出錯,因為TestNG強制需要你提供分類器,以區別jdk14和jdk15,我們需要這樣聲明對TestNG的依賴
Maven 學習整理(配置+命令+setting.xml+pom.xml)
Maven的生命周期其實是指它對所有的構建過程進行了反復的推敲、反思,之后總結了一套高度抽象過程。這個過程是高度完善的、容易擴展的。基本上包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署、、站點生成等步驟,幾乎所有的項目生命周期也就這樣。
maven是一個用于java項目管理和自動構建的軟件工具。 它誕生于2002年,它和Apache ant用起來很類似,但是它們的基本設計概念很不相同。 maven是Apache Software Foundation的組成部分,之前是Jakarta Project的組成部分。 maven使用POM(project object model)來描述和構建軟件項目,它依賴其他的擴展模塊和組件。 maven的一個重要特性是網絡化。只要使用者能連接intenet, maven就會自動的在需要的時候從一個或多個資源庫下載需要的plugin和軟件包。 maven基于插件的設計模式,使用不同的插件可以支持不同的語言,現在有.net的插件,也有C/C++的插件。
Maven這個單詞來自于意第緒語,意為知識的積累,也可以解釋為“行家”,“專家”。 Maven是一款優秀的項目管理工具,它能夠根據項目的對象文檔(POM-Project Object Model)去管理,發布項目,并能夠生成相關文檔。
CI過程會經常構建軟件組件;在許多情況下,每當源代碼 存儲庫(比如 Subversion 或ClearCase)中的代碼發生變化時,都要構建軟件組件。 CI的好處是:經常構建軟件可以確保盡早遇到問題(比如代碼缺陷),避免問題在軟件開發 周期晚期變復雜時才被發現。
自動(定時)將項目編譯,打包,發布,調用junit測試,最后生成測試結果
本內容包含了Ant的歷史簡要介紹,Ant的功能以及Ant框架的介紹,并對下載安裝使用Ant進行了示例介紹,同時通過一個Java程序講解了Ant的基本使用方法。
Hudson 是一個可擴展的持續集成引擎。1.持續、自動地構建/測試軟件項目,如CruiseControl與DamageControl。 2.監控一些定時執行的任務。
本文檔說明了基于CI框架敏捷開發管理的基本規范。預期讀者為:開發人員、測試人員、項目管理人員、項目配置管理人員等。
Maven 的超詳細幫助文檔
由于現在公司進行Unit Test Case的整理階段,所以抽空對Ant和Junit技術進行了一下了解,以下是集合了眾家所長之精華(考慮到是按我的思路總結的,也許不能完全表述原作者的思路,所以在參考中我把所有參考過的文章網址或書籍都羅列了出來,大家有時間不妨去看看原文)。
Ant是什么?Ant是一種基于Java和XML的build工具。
構建的groupId和artifactId已經更改了,而當前的項目需要一個與傳遞性 依賴不同名稱的版本——結果是classpath中出現了同樣項目的兩份內容。 一般來說Maven會捕捉到這種沖突并且使用該項目的一個單獨的版本,但是 當artifactId和artifactId不一樣的時候,Maven就會認為它們是兩種不同的類 庫。
Hosted:本地倉庫,通常我們會部署自己的構件到這一類型的倉庫。比如公司的第二方庫。默認thirdparty、releases、snapshots三個本地倉庫 Thirdparty管理第三方依賴 Releases這里存放我們自己項目中發布的構建, 通常是Release版本的 Snapshots發布那些非release版本, 非穩定版本
在沒有應用持續集成之前,傳統的開發模式是項目一開始就劃分模塊,然后等所有的代碼都開發完成之后再集成到一起進行測試,隨著軟件技術的發展,各種軟件方法百花齊放,軟件規模也在擴大,軟件需求越來越復雜,軟件已經不能簡單地通過劃分模塊的方式來開發,需要項目內部互相合作,劃分模塊這種傳統的模式的弊端也越來越明顯,由于很多 bug 在項目的早期就存在,到最后集成的時候才發現問題,開發者需要在集成階段花費大量的時間來尋找 bug 的根源,加上軟件的復雜性,問題的根源很難定位,甚至出現不得不調整底層架構的情況。