詹金斯和麦文的区别

abs*_*son 60 java maven jenkins

我是这个地区的新手.Maven和Jenkins有什么区别.在我看来,它们都支持JUnit的自动构建和自动执行.如果是的话,他们是免费的吗?还是互相排斥?

Jun*_*Liu 85

Maven正在构建工具/环境.Jenkins是一个CI(持续集成)工具.

Maven更像是Ant的替代品.

  1. 它通过插件帮助构建项目,例如构建和版本控制,JUnit测试等......
  2. 它管理项目的依赖关系.您可以定义如何构建项目(插件)以及pom.xml文件中需要哪些库(依赖项).

Jenkins作为一个智能作业调度程序,无法帮助您完成版本控制或JUnit测试等任务,但它可以通过调用项目中的pom.xml文件间接地帮助您完成所有这些任务.而詹金斯让你决定何时调用pom.xml文件的基础上,叫什么情况下,你要对结果做什么的权力.和詹金斯可以听不同的事件,例如svn提交,当前时间是午夜等.

这是一个强大的想法.例如,您可以要求Jenkins在提交新代码时触发构建或运行所有JUnit测试,然后,如果传递单元测试,则在目标计算机上部署.或者在午夜安排繁重的任务,例如单元测试.这是自动部署或AKA持续集成的基本思想.如果您愿意,可以简称CI.

  • 一般来说,maven的目的是为了解决Ant之前遇到过的问题.实际上,越来越多的项目开始使用maven而不是Ant.近年来,Eclipse和Netbeans选择Maven而不是Ant作为默认构建工具.出于这些原因,我说Maven打算成为Ant的替代品.为了帮助您思考,Java和C++并没有阻止人们使用汇编语言,但事实上,99.9%的程序不再由程序集实现. (6认同)
  • 我不会说Maven是Ant的替代者; 我会改用替代词.我的偏好是Ant,因为我发现Maven相当沉重而且不像Ant那么直观.它还强制我不喜欢并且无法覆盖的目录约定. (2认同)

duf*_*ymo 24

Maven是一个构建工具,用于管理依赖关系和应用程序生命周期.它还具有插件设计,允许您将其他任务添加到标准的编译/测试/打包/安装/部署任务中.

Jenkins是一个持续集成套件,可以从存储库中检查您的代码,构建并打包它,并将其转储到服务器,以便您可以对其进行测试 - 所有这些都是免费的.它可以使用Maven或Ant作为构建工具.

总之,Jenkins可以使用Maven作为持续集成的构建工具.如果您选择不进行CI,则可以在没有Jenkins的情况下使用Maven.

  • @abson - 是的。阅读此页面 https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project ... 并注意它说 *"... 某种执行构建的构建脚本(蚂蚁, maven、shell 脚本、批处理文件等)真正工作发生的地方"* (2认同)