代码之家  ›  专栏  ›  技术社区  ›  Dean J

启动一个新的Maven项目,要避免什么地雷?

  •  9
  • Dean J  · 技术社区  · 16 年前

    我正在启动一个新项目。我打算第一次使用Maven。通过阅读以前的文章,那些喜欢马文的人让我确信…但是那些 憎恨 马文似乎踩过地雷,我想知道更多细节。

    看来我要遵守马文的约定了。这是轻描淡写的吗?还有别的吗?

    *这将是一个中等规模、中等复杂度的项目;我的计划是10000行代码,在它的一生中不会超过100K。(我会考虑) 大的 500公里以上,10公里以下,FWIW)。*

    是的,我在用Maven。如果陷阱是“maven”,没有任何其他细节,那么您将在回复上浪费带宽。

    5 回复  |  直到 16 年前
        1
  •  7
  •   Pascal Thivent    16 年前

    事实上,遵循Maven哲学及其惯例是一个好主意,因为不遵循它们会使事情变得更复杂。

    但是,因为似乎很难用一个答案来总结哲学,因为Maven有一点学习曲线,而且因为Maven文档并不总是像它应该的那样好(这可能是最大的地雷),所以我的建议实际上是抓起一本书(或两本)并像书中那样做。如果你不知道该选哪一个,看看 this page .在我看来, Maven: The Definitive Guide Better Builds with Maven 绝对是很好的阅读和在线可用。但是后来的那个 Apache Maven 2: Effective Implementation 布雷特·波特合著的肯定也不错,我只是没读过。

    当你开始的时候,不要犹豫,就特定的话题征求建议、指导和建议,以走正确的道路。这个 maven user list 是个不错的地方。在StackOverflow上问问题是另一种选择:)例如, 如何组织多模块构建 可能是第一个话题。但是如果没有更多的细节,现在就不可能回答。

        2
  •  6
  •   Nathan Feger    16 年前

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

        3
  •  2
  •   Community Mohan Dere    9 年前

    我的 prior answer 在建立全集团的回购协议时,可能会有一些有用的建议。以及 this on splitting up projects .

        4
  •  1
  •   mhaller    16 年前

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

    • 多模块
    • 亲本POMS

    尽可能长时间保持原样。在整个发布周期中尽早播放,例如通过执行0.0.1版本的发布。让它自动化。

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

        5
  •  0
  •   cetnar    16 年前

    在“maven”这个术语中,我们想到maven核心和一堆插件,它们是由maven团队或其他人开发的。在Maven世界里不完美的事情是:

    • 难以理解依赖关系的范围,导致用户POM和第三方供应商POM中的常见错误,如果是常用库,会造成很大的混乱。
    • 在从属关系中过度使用范围,
    • 在将第三方库放入Maven存储库之前验证POM的薄弱系统,
    • 一些插件质量不够,
    • 某些工件的可用性问题,尤其是来自Sun的问题(导致许可证限制)

    使用Maven还有一些心理方面的问题。对于那些在日常工作中使用Ant的人来说,切换到Maven非常困难,特别是对于非地狱世界的项目。其他人从Maven早期就有过糟糕的经历,当时没有好的文档、书籍和更少的插件。对这些人来说,他们在蚂蚁的项目更容易。有些人不喜欢马文的最后一个原因是无知。

    我同意帕斯卡的观点 “这么多人可能会盲目地错了” .我无法想象没有Maven的当今Java世界。

    推荐文章