【问题标题】:How to avoid wasting time during compilation during development?开发过程中如何避免在编译过程中浪费时间?
【发布时间】:2010-04-20 19:56:22
【问题描述】:

我正在与一个小型开发团队合作。我的工作是将 Make 项目(使用 Intellij Idea 9.0)转换为 Maven 2 项目。

问题是:我们在开发过程中花费了很多时间。使用 Make,只需要一个完整的构建,然后任何更改都不会消耗很多时间(几乎是瞬间)。另一方面,在 Maven 2 中,一些小改动需要很长时间才能运行。

有什么解决办法吗?谢谢。

【问题讨论】:

  • 必填链接:xkcd.com/303
  • 根据您目前对问题的描述,不可能说什么。添加更多细节(项目结构、如何构建、典型场景等)。
  • 也许你应该使用eclipse?
  • ... 使用 m2Eclipse 插件,这将允许项目中更改的文件增量编译到与 maven 期望的相同的目标位置。仅在需要重新 jar 时运行 maven 构建。

标签: java maven-2 intellij-idea


【解决方案1】:

您面临的问题及其描述尚不清楚(您的项目结构是什么,如何构建它,编译一项更改需要多少时间等)但以下一些做法可能会有所帮助:

  • 使用增量构建(即不要在每次构建时使用clean)。
  • 使用二进制依赖项(即多个具有依赖项的模块与一个巨大的单体模块)。
  • 使用advanced reactor options 构建智能反应堆(仅构建所需的模块子集)。
  • 使用Maven Shell(如果您不知道这个项目,检查一下)。

就我个人而言,我的项目没有遇到“运行时间很长”的问题。

【讨论】:

  • 谢谢,但只是提示。这不酷,我发现它不适合企业发展。我希望 Maven 3 能解决这个问题。
  • @SeyZ 我不知道你在说什么。什么问题?你想“修复”什么?我对 Maven 没有任何问题,它是“企业开发”的绝佳工具。现在,如果您认为 Make 更合适,那我能说什么,还是坚持下去吧。
【解决方案2】:

另一方面,在 Maven 2 中,一点点改变需要很长时间才能运行。

我不确定这一定是真的。对于单个 Maven 项目,编译阶段不需要从头开始重新编译所有源代码,只需自上次运行以来更新的内容(假设您尚未完成 clean 等)。

没有更多细节,但很难提供任何建议。您是否已转换为 Maven,并且发现它似乎过度地重新构建了您项目的许多部分?如果是这样,请提供更多详细信息,因为 Pascal 提到了上述内容。或者这只是一个被恐惧驱使的问题?

【讨论】:

  • +1,这个问题听起来像是一个免费的声明,它没有提供任何事实或数据。
【解决方案3】:

IntelliJ 可以从 pom 文件中加载模块/项目配置。这意味着在开发过程中,使用 IntelliJ 基于 pom 文件的构建(增量且快速),并且仅使用 maven 独立进行持续集成和发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2019-08-01
    • 2016-08-18
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多