【发布时间】:2016-11-01 11:40:35
【问题描述】:
我想知道当我点击“构建项目”时,Intellij IDEA 会如何处理我的 Maven 项目?
Intellij 将如何使用 Maven 构建项目?
【问题讨论】:
标签: intellij-idea
我想知道当我点击“构建项目”时,Intellij IDEA 会如何处理我的 Maven 项目?
Intellij 将如何使用 Maven 构建项目?
【问题讨论】:
标签: intellij-idea
【讨论】:
IntelliJ 的构建系统参考了 Maven 生态系统以获得一些提示,但归根结底,它是一个单独的构建系统。
在 IntellIJ 中,您有一个包含许多模块的项目。这些都是 IntelliJ 概念。
IntelliJ 模块有责任了解其依赖项和库。这可以完全使用 IntelliJ 语义来完成,或 IntelliJ 可以允许其他构建系统声明依赖项和库。也就是说:IntelliJ Module可以基于一个Mavenpom.xml或者Gradle的build.gradle。
当您在 IntelliJ Java 模块上单击“生成”时:IntelliJ 将检查您的模块要求哪些库,并解析您的模块的依赖关系以确定其依赖的模块要求哪些库。
一旦知道这些库:IntelliJ 将调用 Javac 或 Eclipse 编译器(无论您已配置为 Java 编译器中的哪一个),所有这些库都位于类路径中。它会输出一个 jar,不是 Maven artefact。
IntelliJ Make 不会运行 mvn compile 或类似的(除非您根据 @Ashutosh Jindal's answer 将其显式配置为。
既然您已经为您希望如何构建项目提供了权威定义,为什么 IntelliJ 会使用它自己的独立构建系统?我可以想象各种原因:
pom.xml),而 IntelliJ 需要额外的语义和索引来提供其所有 IDE 智能。在编译的同时执行索引过程是有意义的,因为:如果您以增量方式进行编译,您可以逐步了解哪些索引也被弄脏了。【讨论】: