這些都是完全獨立的工具,你似乎至少有一些理解。
Maven - 一個工具,它做了很多工作,並提供插件來做更多的工作。可能會試圖做太多。它的主要功能是編譯和打包Java代碼。它還可以運行單元測試,生成文檔並生成項目網站。當添加插件時,它可以執行諸如靜態代碼分析,數據庫模式遷移,替代打包(即構建Eclipse插件,功能或產品或Android程序或...)
Jenkins - 連續工具集成 - 其最基本的形式包括在源代碼控制工具中等待事情發生變化,運行構建工具(可能還包括測試)以及將構建的構件存檔到已知位置。
Liquibase - 一種保持數據庫模式更改與使用數據庫的隨附代碼同步的工具。
您問「Jenkins有自己的編譯自動化還是我必須使用Maven插件進行編譯?」
詹金斯並不「天生」知道如何建立任何東西。它可以使用Maven,它可以使用Ant,它可以使用make,它可以使用shell腳本,它可以使用你自己釀造的批處理文件和Perl的可憎。它確實對Maven項目有一些內置的理解,因爲它來自Java社區,並且它本身是用Maven構建的。您沒有提及您使用的是哪種語言/平臺,因此選擇Maven作爲構建工具是否合適尚不清楚。如果您正在使用Java或其他基於JVM的語言,那麼Maven可能是合適的。因此,如果您使用Java來構建使用數據庫的基於Web的應用程序,並且您想要實踐持續集成以確保您的應用程序始終通過其自動化測試並始終具有可部署的構件,那麼這三個組件工具可以很好地一起使用。
回到最後的位 - 有很多不同的方式來使用Liquibase。它有不同的命令來完成不同的事情,並且可以用不同的方式運行這些命令。一種方法是使用Maven來運行命令。
我會建議如果你是新手的話,最好從命令行開始使用Liquibase,而不是嘗試使用Liquibase Maven插件。一旦瞭解了它的工作原理,確定使用Maven是否會減少使用命令行遇到的任何「痛苦」。
這將是一個美麗的示例問題在這裏:http://area51.stackexchange.com/proposals/85819/devops –