CMake是個跨平臺的自動化建構系統,它用組態檔控制建構過程(build process)的方式和Unix的Make相似,只是CMake的組態檔取名為CmakeLists.txt。Cmake并不直接建構出最終的軟件,而是產生標準的建構檔(如Unix的Makefile或Windows VisualC++的projects/workspaces),然后再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟件,這種可以使用各平臺的原生建構系統的能力是CMake和SCons等其他類似系統的區別之處。CMake可以編譯源代碼、制作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake支援in-place建構(二進檔和源代碼在同一個目錄樹中)和out-of-place建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake也支援靜態與動態程式庫的建構。
在Eclipse中使用Ant,Ant是Java平臺下非常棒的批處理命令執行程序,能非常方便地自動完成編譯,測試,打包,部署等等一系列任務,大大提高開發效率。如果你現在還沒有開始使用Ant,那就要趕快開始學習使用,使自己的開發水平上一個新臺階。
Maven簡介:Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。如果你已經有十次輸入同樣的Ant targets來編譯你的代碼、jar或者war、生成javadocs,你一定會自問,是否有一個重復性更少卻能同樣完成該工作的方法。Maven便提供了這樣一種選擇,將你的注意力從作業層轉移到項目管理層。Maven項目已經能夠知道如何構建和捆綁代碼,運行測試,生成文檔并宿主項目網頁。
在本教程中,您將學習 Ant 這個Java TM 項目生成工具。由于其靈活性和易用性,Ant 很快在 Java 開發人員中流行開來,因此您有必要了解關于它的更多信息。<br> 在繼續學習本教程之前,你不需要具備先前的Ant 經驗或知識。我們將首先查看Ant 生成文件(build file )的基本結構,并學習如何調用這個工具。我們將逐步完成為一個簡單 Java 項目編寫生成文件的步驟,然后考察 Ant 的其他一些有用功能,包括文件系統操作和模式匹配。最后編寫一個擴展 Ant 功能的自己的Java 類來結束本教程。 在學習本教程的過程中,我們將同時展示如何從命令行以及從其他開放源代碼 Eclipse IDE 運行Ant。試驗本教程中的例子不需要同時具備這兩種環境;您可以選擇其一,甚至選擇某種不同的開發環境,只要該環境支持 Ant。如果選擇從命令行使用Ant,并且 Ant 還沒有安裝到機器上,您需要遵循 Ant 主頁上的安裝說明。相反,如果決定僅使用 Eclipse 環境,您不需要單獨安裝Ant ,因為 Eclipse 已經包括了它。如果還沒有 Eclipse ,您可以從 Eclipse.org 下載Eclipse 。
主要內容了解Ant是什么以及能幫我們做什么事掌握Ant常用的命令掌握編寫build.xml與運行的方法。
軟件的自動化是一個持續改進的過程,體現著公司的能力成熟度CMM等級。hudson 工具:目前非常流行的開源CI服務器,持續集成(CI)是一種實踐,旨在緩和和穩固軟件的構建過程。
Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周(ProjectLifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后 Maven 可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
擴展Hudson,開發插件,持續集成(CI)是將多個團隊成員貢獻的代碼頻繁持續的構建并給與反饋,而不必將尋找和修復缺陷的過程放在開發后期。在典型的持續集成周期中,代碼首先被周期性的從版本控制服務器(如CVS或Subversion)中更新下來,隨后調用自動化編譯腳本(如Ant或Maven)編譯,并運行所有測試用例,給出結果分析的報告。Hudson是一款優秀的持續集成工具,目前的發展速度很快,并且吸收了眾多CI服務器的優點和長處。
Hudson作用:自動(定時)將項目編譯,打包,發布,調用junit測試,最后生成測試結果
概述Ant的功能和優勢,并討論它的歷史概況和日漸提高的普及性。然后我們通過考察一個最基礎的生成文件的基本結構,直接進入對Ant基礎的討論。我們還會介紹屬性和依賴關系的概念。Ant是什么?Apache Ant是一個基于Java的生成工具。據最初的創始人James Duncan Davidson介紹,這個工具的名稱是another neat tool(另一個整潔的工具)的首字母縮寫。<br><br>生成工具在軟件開發中用來將源代碼和其他輸入文件轉換為可執行文件的形式(也有可能轉換為可安裝的產品映像形式)。隨著應用程序的生成過程變得更加復雜,確保在每次生成期間都使用精確相同的生成步驟,同時實現盡可能多的自動化,以便及時產生一致的生成版本,這就變得更加重要了。C或C++中的傳統項目經常使用make工具來做這件事情,其中生成任務是通過調用shell命令來執行的,而依賴關系定義在每個生成文件之間,以便它們總是以必需的順序執行。
持續集成環境的重要性在當今的軟件開發中無需再表述,最常用的工具就是CruiseControl(以下簡稱為CC)。下圖描述CC的工作方式,讓大家對CC有個直觀的認識。
Maven是一個構建工具。Maven是一個項目管理工具。它包含了一個項目對象模型(Project Object Model POM),一組標準集合,一個項目生命周期(ProjectLifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型(POM)來描述你的項目。Maven的核心很小,主要的功能是依靠各種插件來完成的。Maven有一個生命周期,當你運行mvn install的時候被調用。這條命令告訴Maven執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven運行了許多默認的插件目標,這些目標完成了像編譯和創建一個JAR文件這樣的工作。此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。
本文主要在《集成開發環境的配置使用說明》的基礎上講解如何在安裝CCNET并配置一個新的項目進行每日的持續化集成。什么是持續化集成。在過去幾年中,敏捷已經是一個非常熱門的話題,它高效的工作方式和快速的需求應對能力,贏得了很多中小軟件廠商的關注。那么敏捷除了一些經常談論到編程思維和迭代的開發模式等,其實還部分依賴于好的改善工作流程的工具。持續化集成工具便是服務于敏捷軟件開發的一個系列。它主要將原本分散,無序的工作流程,通過工具軟件有機的組織起來,并且在組織的過程中,參與開發設計測試的各個部門的人員都能從中獲取到自動化方面的優惠。使得團隊的工作效率大大提升。CruiseControl.Net是什么?上面講解了什么是持續化集成,那CruiseControl.Net就是一款由ThoughtWorks公司提供給我們的輕量級的持續化集成工具。它能夠將代碼版本控制,單元測試,代碼規范檢查,項目的發布部署等工作步驟有機的組織起來,并且利用其調度性可作自動化處理,它還有強大的日志記錄功能,能將集成結果及時地反饋給項目管理人員和項目開發人員。在下文中凡是用到CruiseControl.Net均用CC.Net來代替。
《Maven實戰》是國內第一本公開出版的Maven專著。它內容新穎,基于最新發布的Maven3.0,不僅詳盡講解了Maven3.0的所有新功能和新特性,而且還將這些新功能和新特性與Maven2.x版本進行了對比,以便于正在使用Maven 2.x版本的用戶能更好地理解。本書它內容全面,以從專家的角度闡釋Maven的價值開篇,全面介紹了Maven的安裝、配置和基本使用方法,以便于初學者參考;詳細講解了坐標和依賴、Maven倉庫、生命周期和插件、聚合與繼承等Maven的核心概念,建議所有讀者仔細閱讀;系統性地闡述了使用Nexus建立私服、使用Maven進行測試、使用Hudson進行持續集成、使用Maven構建Web應用、Maven的版本管理、Maven的靈活構建、生成項目站點和Maven的m2eclipse插件等實用性較強的高級知識,讀者可有選擇性的閱讀;擴展性地講解了如何Maven和Archetype插件,這部分內容對需要編寫插件擴展Maven或需要編寫Archetype維護自己的項目骨架以更便于團隊開發的讀者來說尤為有幫助。它實戰性強,不僅絕大部分知識點都有相應的案例,而且本書還在第4章設計了一個背景案例,后面的很多章節都是圍繞這個案例展開的,可操作性極強。 本書適合所有Java程序員閱讀,無論你是從未使用過Maven,亦或是已經使用Maven很長一段時間了,相信你都能從本書中獲得有價值的參考。本書也適合所有項目經理閱讀,它能幫助你更規范、更高效地管理Java項目。