Maven和Jenkins之间有什么区别?
两者都支持自动构建和自动执行JUnits。
如果是这样,它们是互补的还是相互排斥的?何时应该使用其中一个而不是另一个?
Maven是一种建立工具/环境,Jenkins是一种CI(持续集成)工具。
Maven更像是Ant的替代品。
Jenkins作为一个智能作业调度程序,不能帮助您处理版本控制或JUnit测试等任务,但它可以通过调用您项目中的pom.xml文件间接地帮助您处理所有这些事情。同时,Jenkins让您有权根据要调用的条件和您想要处理的结果来决定何时调用pom.xml文件。Jenkins可以监听不同的事件,例如svn提交,当前时间是午夜等等。
这是一个强大的想法。例如,您可以要求Jenkins在提交新代码时触发构建或运行所有JUnit测试,然后如果单元测试通过,将其部署到目标机器上。或者在午夜时刻安排重要的任务,例如单元测试。这就是自动部署或持续集成的基本思想。如果您喜欢简写,可以称之为CI。
Maven是一种构建工具,用于管理依赖项和应用程序生命周期。它还具有插件设计,允许您将其他任务添加到标准的编译/测试/打包/安装/部署任务中。
Jenkins是一个持续集成套件,可以从存储库中检出您的代码,构建和打包它,并将其转储到服务器上,以便您可以进行测试 - 全部自动化完成。它可以使用Maven或Ant作为其构建工具。
总之,Jenkins可以使用Maven作为其持续集成的构建工具。如果您选择不进行持续集成,也可以单独使用Maven。
当有很多Jenkins作业需要管理时,特别是当许多作业应该具有相同的参数时,管理起来并不容易。 "jenkins-maven-plugin"允许从简单的Maven POM生成Jenkins作业,每个作业一个“config.xml”。这样,我们可以在一个地方控制所有的Jenkins作业,并在它们之间重用任意数量的配置。