这些都是完全独立的工具,你似乎至少有一些理解。
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 –