相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资源了,因此不建议这样做。IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还可以在“容器”运行之前配置一个编译事件,先编译后运行。在默认情况下,IntelliJ IDEA 也都是这样设置的,因此在实际开发中,咱们也不用太注意编译这件事。虽然 IntelliJ IDEA 没有实时编译(未设置时),但是这并不影响代码的自动检查。但是对于多个类之间的关联关系,还是要等BuildRebuild触发的时候才会做相关检查的。

1

  • 标注1:Build Project,编译项目;
  • 标注2:Build Module,编译模块;
  • 标注3:Recomplie,重新编译类文件;
  • 标注4:Rebuild Project 重新编译项目。

如上图所示,在 IntelliJ IDEA 中,编译方式有以上 3 种,分别为:

  • Build:对选定的目标(Project 或 Module)进行编译,但只编译修改过的文件,没有修改过的文件则不会进行编译。
  • Recompile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
  • Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 Rebuild 的目标只有 Project,因此每次 Rebuild 花的时间都比较长。

接下来,咱们一起看看运行之前的编译情况:

2

如上图所示,IntelliJ IDEA 默认在运行项目之前先进行Build操作。

那么,咱们在一起看看 IntelliJ IDEA 编译器的设置和选择:

3

  • 标注1:设置自动编译项目;
  • 标注2:设置编译时heap大小;
  • 标注3:设置编译时的VM参数。

如上图所示,咱们定位到“ Build、Execution、Deployment > Complie ”页面,通过勾选 标注1 所示的Build project automatically,咱们可以设置 IntelliJ IDEA 进行自动编译;标注2 表示设置编译heap大小,默认为 700,如果使用 64 位的机器,在内存足够的情况下,可以尝试修改为 1500 或以上,此外,如果咱们在编译的时候报出OutOfMemoryError的错误,也可以来修改(减小)这个参数;标注3 表示设置编译时的虚拟机参数,这个可以根据需求进行个性化设置,一般情况下,默认就可以。

5

如上图所示,咱们定位到“ Build、Execution、Deployment > Compiler > Excludes ”页面,可以通过点击 标注1 所示的+-,任意添加或删减目录(或文件)进行编译排除。在编译项目的时候,如果任何一个可编译的文件没有编译通过,那么 IntelliJ IDEA 就无法运行起来,必须等全部问题解决并且编译通过之后,IntelliJ IDEA 才能运行起来。不过有可能在开发过程中,某一个包目录的文件编译无法通过,但是咱们又不急着改,这时咱们就可以考虑把该包加入到排除编译列表中,这样的话,项目就可以运行起来啦!

6

  • 标注1:Use compile;
  • 标注2:Project bytecode version;
  • 标注3:Per-module bytecode version.

如上图所示,咱们定位到“ Build、Execution、Deployment > Compiler > Java Compiler ”页面,标注1 所示为 IntelliJ IDEA 支持的编译器,包括 Javac、Eclipse、Ajc 等,默认是 Javac,也推荐使用 Javac;标注2 所示为针对项目字节码编译版本,一般选择的是当前项目主 JDK 的版本;标注3表示可以针对Project下各个Module的特殊需求单独设置不同的bytecode version,当然,前提是咱们的电脑上必须事先安装对应的 JDK 版本。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐