Maven 软件构建和部署的最佳实践

Maven 软件构建和部署的最佳实践,maven,gradle,ant,Maven,Gradle,Ant,你们在项目中使用的最佳实践是什么 目前我正在使用Ant脚本为项目构建做一些杂务,然后是Maven。 目前我们没有任何直接的CI/CD渠道,但我想知道这个行业是如何发展和形成的。我试过Gradle,觉得很酷 所以,请详细说明你们认为,如果某家公司要从头开始发展,什么可能是最好的做法 首先,在我看来,这个问题不太适合人们提出关于具体技术的具体问题。这个问题太宽泛了 关于问题中提到的构建工具: 我想说,使用Maven和Gradle,您可以实现现代管道,另一方面,您可以开发糟糕的Gradle和Maven

你们在项目中使用的最佳实践是什么

目前我正在使用Ant脚本为项目构建做一些杂务,然后是Maven。 目前我们没有任何直接的CI/CD渠道,但我想知道这个行业是如何发展和形成的。我试过Gradle,觉得很酷


所以,请详细说明你们认为,如果某家公司要从头开始发展,什么可能是最好的做法

首先,在我看来,这个问题不太适合人们提出关于具体技术的具体问题。这个问题太宽泛了

关于问题中提到的构建工具:

我想说,使用Maven和Gradle,您可以实现现代管道,另一方面,您可以开发糟糕的Gradle和Maven脚本,在某种程度上,这些脚本将成为维护的噩梦。Ant在这些日期已经过时了,所以我不会在新项目中选择它

Ant/Maven/Gradle是唯一的构建工具,适当的CI/CD还有很多

根据您可能希望了解的应用程序类型:

吉特 nexus/人工制品厂 Jenkins或其他CI工具 测试-这是一个非常广泛的话题 码头工人 kubernetes&在kubernetes上的正确部署 正确记录 正确计量 等等等等 如果您计划在云上运行,那么显然您必须了解您的云提供了什么

我想强调的最后一个想法是,没有一个合适的管道——每个公司都会构建最适合自己的CI/CD管道。 当然,有些管道是相似的,但它们实际上不必完全相同,因为:

有些公司很小,有些公司很大 有些一天发布多次,有些选择1/2年发布 有些只使用Java,我知道你在这个问题上主要是指Java生态系统,而另一些则使用其他必须协同工作的语言 一些人使用自己的服务器,另一些人在这里托管应用程序,一个转到AWS,另一个转到Google cloud或Microsoft Azure,或者其他云提供商 等等等等
感谢@markbramnik花时间写这篇文章。是的,我确实理解这是一个广泛的问题,我也把它发布在其他平台上,以便从集体知识中获得最佳效果。