【问题标题】:Small java project growing (maven and junit)小型java项目成长(maven和junit)
【发布时间】:2009-10-01 18:25:41
【问题描述】:

我正在开发一个不断增长的 java 项目,我可能会与其他人合作改进一些功能。

我想使用一些工具来提高我的工作质量,请记住:

  • 我没有太多时间花在这个项目上
  • 这是一个小项目,但对我来说真的很重要
  • 我不想为它购买软件/硬件
  • 我已经在用SVN了

你对 maven 和 junit 有什么看法?值得为他们花时间吗? 你还知道其他什么好工具吗?

【问题讨论】:

    标签: java maven-2 junit project-planning


    【解决方案1】:

    Maven 和 JUnit 有助于培养良好的习惯(单元测试、统一的结构),再加上良好的 SCM 习惯,我认为这些是协作开发中最重要的事情。

    【讨论】:

      【解决方案2】:

      由于您没有使用 JUnit,我猜您还没有任何单元测试。如果其他人开始处理您的代码,这对我来说似乎是您要采取的最重要的一步。如果没有单元测试,有人可以在不知情的情况下轻松破坏功能。

      创建一套涵盖至少 80% 代码的单元测试。您可以使用 Cobertura 来衡量代码覆盖率。这可能看起来像很多工作(确实如此),但将来会为您节省更多时间。

      Maven 是目前构建和部署的事实标准,但它也有其缺点。如果你有一个有据可查的构建过程(使用 Ant 或自定义脚本),我建议引入 Maven 不如添加单元测试重要。

      【讨论】:

      • 添加测试可能需要几个月,但添加 maven 可能需要几天。
      • 我也喜欢 Maven - 但实际上他可能需要几天以上的时间 1.) 充分了解 Maven 以了解他现有的项目如何适应 Maven。 2.) 改变他的项目结构以符合 Maven 的期望(取决于它有多大和有多大不同)。
      【解决方案3】:

      JUnit 非常适合帮助验证您在任何项目中的代码。

      Maven 有一个难以克服的学习曲线。如果您有一个模块和一组相对简单的构建步骤,您可能会发现使用 Ant 更简单。

      另一方面,使用 Maven 构建,您可以简单地在代码中添加额外的报告来检查代码中的各种参数,并且迁移到 Maven 比从一开始就遵守它的约定要困难得多。

      可以帮助检查您的代码的 Maven 插件示例:

      如果您对代码质量插件感兴趣,也可以考虑Sonar,它会封装这些插件并为您提供一些时髦的报告。

      如果您对最佳实践感兴趣,还可以考虑使用持续集成服务器,Hudson 是免费的,并且可以与 Maven 很好地集成。

      【讨论】:

        【解决方案4】:

        我们在一个相当大的项目中使用 Maven 和 JUnit,发现它非常有用。

        对于项目规划,我强烈推荐FogBugz。这是迄今为止我见过的最好的问题跟踪系统,对项目管理也有很好的支持,最多可免费供 2 人团队使用。

        【讨论】:

        • “最多 2 人的团队免费”对于具有增长潜力的小型项目来说听起来很危险。如果您的群组扩大,您不希望被锁定在您的问题跟踪器之外(或拒绝某些人访问它)。
        • 它远远优于我尝试过的任何开源替代品。如果一个商业项目的人数超过 2 人,那当然值得考虑购买。除了作为客户之外,我与公司没有任何关系(顺便说一下,它是由 Stack Overflow 的制造商制造的)。
        【解决方案5】:

        如果您使用 Eclipse 和 SVN,我建议您看看 Mylyn。它的基本概念非常简单,但在团队合作时很有帮助。 在我看来,Maven 对于它的真正好处来说太烦人了。也许 ant 足以完成您的部署任务。

        【讨论】:

          【解决方案6】:

          我在一个项目中使用过 maven,但错过了它。尽管在设置和配置方面有相当大的前期投资。当我使用它时,XML 文档已经过时了(也许这已经改进了)。一旦你通过了这个初始设置,虽然它是一个很好的节省时间的方法。

          至于 JUnit,它很棒。用它。

          这两种工具都应被视为一项投资。起初,它可能看起来像很多不相关的东西,但从长远来看,该项目会随着更少的问题而更加可预测地发展。

          【讨论】:

            猜你喜欢
            • 2013-04-08
            • 2012-03-18
            • 2010-12-09
            • 2017-05-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多