intellij Project make和Maven Compile之间的区别?

时间:2015-05-11 11:39:02

标签: java eclipse maven intellij-idea ide

在maven模块中工作时,在intellij build中进行操作有什么区别 - >制作项目和Maven项目 - >根pom - >编译阶段。

intellij是否会调用maven? 他们两个都将源代码编译到同一个地方吗? 他们都复制资源文件吗? 为什么我们需要两种选择? intellij是否自动下载依赖项,我们只需调用项目make,而不使用maven编译?

intellij project: two ways of compiling

3 个答案:

答案 0 :(得分:25)

它们在执行的任务方面实际上非常相似,默认情况下使用javax.tools.JavaCompiler编译项目的源和测试路径。

intellij是否会调用maven?

不,它没有默认值。请记住,这只是IntelliJ内置的Java编译器,有些Java项目不使用maven。

他们都将源代码编译到同一个地方吗?

是的,他们使用相同的源文件进行编译,如果这就是你在这里要求的。

他们都复制资源文件吗?

是的,他们都将资源文件复制到不同的位置。

为什么我们需要这两个选项?

我们不需要两种选择。 Maven编译命令检查源代码是否存在任何语法错误,这些错误有效地涵盖了IntelliJ的make选项所做的工作。

intellij是否自动下载依赖项,我们只需调用项目make,而不使用maven编译?

Intellij的编译器可以被认为是语法编译器,这就是为什么你需要maven来处理你的项目的依赖。

答案 1 :(得分:3)

不,IntelliJ不会调用maven,而是从pom.xml获取所有信息,例如:输出目录库等。

所以不用担心,您可以从IntelliJ调用make来编译和运行您的应用程序。 如果您在maven构建文件中有一些特殊目标,则可以从maven窗口运行它。

所有maven依赖项都将从存储在maven本地存储库中的IntelliJ下载。

答案 2 :(得分:2)

我们认为我们有项目A ,使用 Maven Project B

如果您更改了 B 项目,则必须在 A 上更新此项目。然后你必须在A 中编译 B。

但如果你只改变了A,你就不必编译Maven。