用于非Java CI / CD的Maven over Ant [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于非Java CI / CD的Maven over Ant [关闭]相关的知识,希望对你有一定的参考价值。

对于(非JAVA)CI / CD实现使用Maven over Ant是否有任何优势,其中大多数任务由具有一些参数的.exe执行,并且将从Jenkins调用相同的任务。任何的意见都将会有帮助。

答案

您需要了解Ant和Maven在他们的工作方式上有很大不同。

  • Ant本质上是一种伪装成XML的脚本语言
  • Maven更喜欢插件的静态配置,每个插件都做一个相当明确的工作。

根据我的经验,这意味着Maven通常在Java IDE中得到更好的支持,可以更容易地在本地开发您需要的功能,并在任何给定的时刻选择最合适的IDE。我已成功在Netbeans,IntelliJ和Eclipse中使用了相同的,未更改的Maven项目。

如果我理解你的模糊描述,我会为EXE的每个调用编写一个小的jUnit测试,提供参数(或参数化的测试套件,具体取决于你的参数的存储方式)。这使您可以重新运行一个测试或轻松失败的测试。使测试独立,以便它们可以按任何顺序执行。这里有一点肘部油脂,走的很长。

这种方法允许Jenkins更多地了解您的测试。如果需要,可以并行运行它们。如果需要,最后生成报告。如果测试成功,则仅继续部署。在蚂蚁中,你需要亲自手动编写大部分内容。

注意:Maven相当挑剔,学习曲线陡峭。尽可能遵循惯例。

另一答案

您正在构建非Java。我和Maven一起去。也就是说,这两种方法都有很多痛苦。

Maven声明了一个输出工件。这是一种祝福和诅咒。如果您想要一个自定义构建周期,这是构建特定项目的一组步骤,您可以使用Maven轻松添加它。有很多Maven从C / C ++源代码构建共享对象库的例子(通常是通过JNI包含到Java中)。只要你定义你的工件,并定义一个自定义生命周期来构建它,你可以很好地与Maven相处。当您的生命周期中包含少量现有Maven目标时,主要问题就出现了,您需要编写几乎所有这些目标。

如果你有很多东西要“编译”到你的构建系统中,那么Ant是最小化编码工作的最佳选择。也就是说,它是一个用XML配置的类似Make的工具,有一些非常好的功能可以隐藏它的一些Make遗产。编写一些额外的Ant任务并不难,并将它们导入Ant构建也不困难。也就是说,没有“通用”构建项目结构,并且由于缺乏这种结构,您对ant build.xml文件的维护将会随着时间的推移而受到影响。此外,项目共有的信息没有预先声明的结构,您会发现由于这个事实,它随着时间的推移会变得很难管理。

因此,Maven可能是一个更好的长期解决方案;但是,它也有更深入的学习曲线,并且在设置构建时需要更多的前期工作。 Ant会让你更快地出门,但可能会给你一个项目(从构建的角度来看)结构较少,没有构建报告,并且可能(因此)花费更多的时间和精力来更新。

以上是关于用于非Java CI / CD的Maven over Ant [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

基于Jenkins+maven+gitlab+harbor+Rancher+k8s的CI/CD实现(尚未完成,还在更新中)

你能在 GitLab CI/CD 中添加外部 Maven 库吗

带有 maven 的 gitlab CI/CD 不会在 application.properties 中设置环境变量

如果我们部署了 Selenium + Java 用于测试自动化,当我们使用 Heroku 实现 CI/CD 流程时,我们会遇到任何障碍吗?

利用开源软件搭建JAVA工程CI&CD自动化工具链

基于Jenkins和Maven实现Docker镜像的CI/CD