你对Maven的印象如何?[已关闭]
我正在考虑将Maven用于我管理的Java开源项目。
然而,在过去,Maven并不总是拥有最好的声誉。此时此刻,你对Maven的印象如何?
我正在考虑将Maven用于我管理的Java开源项目。
然而,在过去,Maven并不总是拥有最好的声誉。此时此刻,你对Maven的印象如何?
对于开源项目,Maven有一些优势,特别是对于你的贡献者(例如mvn eclipse:eclipse)。
如果你真的和Maven一起去,你必须虔诚地遵循的一条规则是:不要与工具作斗争。完全按照 Maven 建议的方式布局项目,遵循其所有约定和最佳实践。你和Maven的每一场小小的争吵都是你不会花在为项目编写代码上的一天。
还要预先考虑要将工件部署到何处(是否要托管自己的存储库?)。
不要害怕使用Maven以外的其他东西(例如蚂蚁)。项目的成功将取决于项目本身,而不是它的构建工具(只要您选择一个最佳的构建工具,Ant和Maven都是)。
就个人而言,我不是粉丝。我同意查尔斯·米勒(Charles Miller)关于它被设计打破的大部分说法。它确实解决了一些问题,但它也引入了其他问题。
Ant远非完美,但它更强大,记录得更好。但是,以模块化方式使用它确实需要一些纪律(这是Maven试图解决的问题之一)。我认为发明比蚂蚁和Maven更好的东西不会那么困难,但这个工具似乎还不存在。
如果你喜欢Maven的依赖管理,但不喜欢Maven,你可以使用Ivy在Ant中得到类似的东西。我对这种依赖关系管理方式的问题是,由于你无法控制的因素,这种依赖关系管理是脆弱的。它确实有意义的一个用例是,如果您的组织内部有很多相互依赖的项目。在这种情况下,一切都在您的控制之下,它可能工作得很好。
编辑:我忘了补充一点,即使你不喜欢Maven,你也不能忽视它。如果您编写其他人使用的开源库,他们会期望它们在 Maven 存储库中可用,以便他们可以从 Maven 版本中轻松使用它们。
EDIT2:既然你已经澄清了你的主要兴趣是为其他Maven用户提供开源库,那么值得注意的是,你不一定要使用Maven来实现这一目标。有一组用于发布到 Maven 存储库的 Ant 任务。因此,如果您想继续使用Ant来构建项目,您可以这样做,但仍然可以满足使用Maven的用户。