【问题标题】:Does IntelliJ Build > Rebuild Project invoke maven?IntelliJ Build > Rebuild Project 是否调用 maven?
【发布时间】:2015-06-09 15:31:51
【问题描述】:

在 IntelliJ 14.1 中,当为 maven 项目调用 Build > Rebuild Project 时究竟会发生什么。

  • 它调用 mvn compile 吗?
  • 它会做一些独立于 maven 的事情吗?

我尝试对此进行测试,当我单击Build > Rebuild Project 时,我看不到任何控制台输出表明 maven 正在运行,如果我从 maven 项目视图运行 maven,我会得到 maven 输出。

那么IntelliJ Build > RebuildProject和maven / gradle / ant等构建工具究竟是什么关系呢?

【问题讨论】:

    标签: java maven intellij-idea


    【解决方案1】:

    不,IntelliJ IDEA make 不调用 Maven。当您打开 Maven 或 Gradle 项目时,它会读取项目的设置并将它们存储为其内部项目模型的一部分。当您调用 Build 时,它会使用导入的设置来使用自己的构建系统编译您的项目。 Rebuild Project 保留现有的导入设置,删除所有 .class 文件和 IntelliJ 的增量编译缓存,并使用 IntelliJ IDEA 的构建系统执行项目的完整构建。

    这样做的好处是 IntelliJ IDEA 构建系统支持非常细粒度的增量重建(例如,如果您更改方法的签名,它将仅重新编译那些实际调用该方法的类,而不是任何其他代码)。

    请注意,您可以在主项目编译之前或之后配置 IntelliJ IDEA 以运行 Ant 任务或 Maven 目标,因此如果您的构建执行非标准操作,您仍然可以将其与 IntelliJ IDEA 构建系统一起使用.

    【讨论】:

    • 你是说 IntelliJ Rebuild Project 正在抛弃以前的 Maven/Gradle 导入/翻译并抛弃增量构建以重新开始,就像首先导入 Maven/Gradle 项目一样?
    • 不,我不是这个意思。 Rebuild Project 保留从 Maven/Gradle 导入的现有模块/依赖信息,删除所有 .class 文件和 IntelliJ 的增量编译缓存,并使用 IntelliJ IDEA 的构建系统执行项目的完整构建。
    • 知道了。谢谢。我建议将该评论放在您的答案中,以使其更加具体和清晰。
    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 2015-07-27
    • 1970-01-01
    • 2015-07-21
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    相关资源
    最近更新 更多