Maven 2 启动一个新的Maven项目,需要避免哪些地雷?

Maven 2 启动一个新的Maven项目,需要避免哪些地雷?,maven-2,Maven 2,我要开始一个新项目。我打算第一次使用Maven。通过阅读之前的文章,喜欢Maven的人让我确信。。。但是那些讨厌Maven的人似乎踩到了地雷,我想知道更多细节 看来我要遵守Maven的惯例了。这是轻描淡写吗?还有别的事吗 *这将是一个中等规模、中等复杂度的项目;我的大概目标是10万行代码,在它的生命周期中增长到不超过10万行。(我认为大到>500 K,小到是确实,遵循Maven哲学,因此它的约定是一个好主意,因为不跟随它们会使事情变得更复杂。 但是,因为似乎很难用一个答案来概括这一理念,因为Ma

我要开始一个新项目。我打算第一次使用Maven。通过阅读之前的文章,喜欢Maven的人让我确信。。。但是那些讨厌Maven的人似乎踩到了地雷,我想知道更多细节

看来我要遵守Maven的惯例了。这是轻描淡写吗?还有别的事吗


*这将是一个中等规模、中等复杂度的项目;我的大概目标是10万行代码,在它的生命周期中增长到不超过10万行。(我认为大到>500 K,小到是

确实,遵循Maven哲学,因此它的约定是一个好主意,因为不跟随它们会使事情变得更复杂。

但是,因为似乎很难用一个答案来概括这一理念,因为Maven有一点学习曲线,并且因为Maven文档并不总是像它应该的那样好(这可能是最大的地雷),所以我的建议实际上是去拿一本书(或两本)如果你不知道该选哪一本,那就看一看。在我看来,和绝对是很好的读物,而且可以在网上找到。但是后来布雷特·波特合著的那本一定也是很好的,我只是没读过


开始时,请毫不犹豫地就特定主题寻求建议、指导和指点,以选择正确的路径。这是一个很好的地方。在这里就StackOverflow提问是另一个选项:)例如,如何组织多模块构建可能是第一个主题之一。但是如果没有更多的细节,现在就不可能回答。

我绝对建议在您的位置设置一个。这是免费的,将有助于集成非maven repository JAR,并在本地缓存它们,以提高设置新环境的性能。

My关于设置集团范围的回购的建议可能会有所帮助。以及。

不要使用您并不真正需要的花哨功能,例如:

  • 多模态
  • 亲本聚甲醛
试着尽可能长时间地保持平淡。尽早完成发布周期,例如执行0.0.1版本的发布。让它自动化


如果您使用的是复杂的设置(例如Eclipse+m2eclipse+WTP+aspects),请为一些小故障做好准备,并了解每个工具存储it设置、临时文件等的位置,以便在必要时手动清理它们。如果您认为“maven无所不能”只是为了发现快照依赖项由于缓存或类似原因没有更新,那么可能会浪费很多时间。

在“maven”一词中,我们想到maven核心和一系列插件,它们是由maven团队或其他人开发的。在Maven world中不完美的事情有:

  • 很难理解依赖关系的范围,这会导致用户poms和第三方供应商poms中的常见错误,如果它是常用的库,则会造成很大的混乱
  • 过度使用从属关系中的范围
  • 在将第三方库POM放入Maven存储库之前,验证第三方库POM的系统薄弱
  • 有些插件质量不够
  • 某些工件的可用性问题,特别是来自Sun的工件(导致许可证限制)
使用Maven还有一些心理学方面的问题。对于在日常工作中使用Ant的人来说,切换到Maven是很困难的,尤其是对于非HelloWorld项目。另一些人在Maven早期没有好的文档、书籍和较少的插件时有不好的经验。对于这些人来说,用Ant完成他们的项目更容易。有些人不喜欢Maven的最后一个原因是无知


我同意帕斯卡的观点,“很多人可能是盲目错误的”。我无法想象今天没有Maven的Java世界。

您的项目有哪些方面。它是一个简单的java项目,还是有其他东西?这将使回答这个问题变得更容易。我对此感到很糟糕,但我真的很想用一个词来回答这个问题,“Maven”。我同意Esko的观点,“Maven”是要避免的最大地雷。Maven,bla-bla-bla-bad,ant+ivy,bla-bla-bla-bla更好。。。讨厌maven的人总是讲同样的故事(理解:那些不喜欢maven的人)。各位,看看各自社区的规模。你真的认为这么多人会盲目地犯错吗?标签已经改为“Maven-2”;因为我从未想过要寻找Maven-2标签,所以我也阅读了Maven标签。这就是说,塞特纳将观看这段视频。帕斯卡,我在听你下面的建议(完全无视那些讨厌马文的人)。卡通福克斯,我非常讨厌EJB,所以我听到了。家长POM,多模块,喜欢吗?你是认真的吗?我的意思是,你无法避免使用它们(并且没有理由这么做),所以如果你真的相信这一点,就说不要在这种情况下使用Maven。如果你需要它们,就使用它们。有人为一个独立的项目创建了一个奇怪的父pom,没有任何依赖关系。为什么这样做?继承被高估了,而且它经常被不加思考地使用。@mhaller,你说得对。有过度使用父级POM的趋势,但有使用不足多模块的趋势。将要在同一个多模块项目中部署在一起的组件进行分组有很多好处。在这样做的时候,你很少(如果曾经)失去使用MM项目的单个组件的能力+1,看起来很完美。我比较喜欢看书;我从实践和阅读文档中学到的东西比从阅读书籍中学到的要多得多。如果你想建议其中一个,那会是哪一个?有没有书,做实际上是学习的唯一方式。。。这里的问题是Maven文档并不总是足够好。而且,因为maven通常有不止一种解决方案,所以我认为一本书是入门的好伴侣(它会有所帮助)