jenkins和Maven的区别

我是这个地区的新手。 Maven和Jenkins有什么不同? 在我看来,它们都支持JUnits的自动构build和自动执行。 如果是这样,他们是免费的吗? 还是相互排斥?

Maven正在构build工具/环境。 jenkins是一个CI(持续集成)工具。

Maven更像是Ant的替代品。

  1. 它通过插件例如构build和版本控制,JUnittesting等来协助构build项目。
  2. 它pipe理你的项目的依赖关系 。 您可以定义如何构build项目(插件),以及在pom.xml文件中需要哪些库(依赖关系)。

Jenkins作为一个聪明的工作调度器,不能帮助你处理版本控制或者JUnittesting等任务,但是通过调用你的项目中的pom.xml文件,它可以间接地帮助你。 Jenkins给你决定何时调用pom.xml文件的权力,根据调用什么条件以及你想要对结果做什么。 jenkins可以听不同的事件,例如svn commit,当前时间是午夜等。

这是一个强大的想法。 例如,您可以要求Jenkins触发构build,或者在提交新代码时运行所有JUnittesting,然后在unit testing通过的情况下部署到目标计算机上。 或在午夜安排繁重的任务,例如unit testing。这是自动部署或AKA持续集成的基本思想。 如果你喜欢,简称CI。

Maven是一个构build工具,是Ant和Ivy的组合。 它pipe理依赖关系,构build和打包应用程序。

Jenkins是一个连续的集成套件,它将您的代码从存储库中检出,构build和打包,然后将其转储到服务器,以便您可以对其进行testing,而不用担心。 它可以使用Maven或Ant作为其构build工具。

总之,Jenkins可以使用Maven作为其持续集成的构build工具。 如果您select不执行CI,则可以在没有Jenkins的情况下使用Maven。

Jenkins Maven插件wiki页面的第一段解释了Jenkins和Maven之间的交互:

“Jenkins的工作并不是很容易,特别是如果某些参数在许多工作中应该是相同的。”jenkins-maven-plugin“允许从一个简单的工作生成Jenkins作业,每个作业一个”config.xml“ Maven POM,这样我们可以将Jenkins的所有工作都控制在一个地方,重复使用它们之间的任何configuration。

Maven是一个构build工具,总之是一个ant的inheritance者。 它有助于构build和版本控制。

但jenkins是持续集成系统,在maven中用于构build。 jenkins可以用来自动化部署过程。 当提交新代码时,会自动运行所有的Junittesting用例,如果它们通过,则打包并将项目部署到特定的位置。