codecamp

IntelliJ IDEA编译器和生成器

编译器和生成器

IntelliJ IDEA 的 Java 生成器生成或汇集源文件、外部库、属性文件和配置以生成应用程序。生成器使用根据 Java 规范工作的编译器。

编译器将遇到的问题视为错误和警告。与错误不同,警告并不能阻止成功编译。警告和错误都会在“消息”窗口中报告。

以下重要原则是汇编概念的基础:

  • 所有编译任务都是在单独的进程中执行的,完全独立于主 IDE 的进程,以摆脱“内存不足”和其他资源争用。
  • Java 编译器通过 Java API 使用 "进程内" 来提高性能和更灵活的标注处理器管理。
  • 如果启用了此选项,则由 IDE 的文件系统中的事件自动触发编译。

要生成项目,您不必离开编辑环境:使用 IntelliJ IDEA,您可以直接编译、生成和运行源代码。

请注意,模块依赖关系的排序方式对于编译成功可能非常重要。

编译类型

IntelliJ IDEA 提出了几种编译和生成应用程序的方法。相应的命令在 "生成" 菜单中可用。

  • 编译 <compilation_scope>:指定范围内的所有源文件都将被编译。这种情况下的范围可能是一个文件、一个包等。有关详细信息,请参阅编译目标部分。
  • 生成项目:自上次编译后修改的整个项目中的所有源文件都将被编译。相关源文件(如果适用)也将被编译。此外,还将执行与修改的源上的编译或生成过程相关的任务。例如,如果在验证页上启用了相应的选项,则执行 EJB 验证。有关详细信息,请参阅生成项目。
  • 生成模块:递归编译是自选定模块中的最后一次编译之后以及它所依赖的所有模块中修改的所有源文件。请参阅生成模块。
  • 重建项目。项目中的所有源文件都将重新编译。当类路径项更改时 (例如:使用添加、删除或更改的 sdk 或库) 时,这可能是必需的。请参阅重建项目。

支持的编译器

目前 IntelliJ IDEA 支持以下 Java 编译器:

  • Javac。此编译器取自当前分配给项目的 Java SDK。
  • Eclipse。IntelliJ IDEA 与 Eclipse 编译器捆绑在一起。
  • Ajc。此编译器不包括在 IntelliJ IDEA 分布中,应单独下载。要在 IntelliJ IDEA 中使用编译器,您还需要下载、安装和启用 AspectJ 支持插件。该插件不与 IntelliJ IDEA 捆绑在一起,但可以从 JetBrains 插件库中安装,如安装、更新和卸载存储库插件并且启用和禁用插件。

此外,IntelliJ IDEA 支持 Flex, Groovy, Android DX 的编译器。相应的插件也应该下载、安装和启用。该插件不与 IntelliJ IDEA 捆绑在一起,但可以从 JetBrains 插件库中安装,如安装、更新和卸载存储库插件并且启用和禁用插件。一旦启用,插件可以在 IDE 级别使用,也就是说,您可以在所有 IntelliJ IDEA 项目中使用这些插件。

生成过程

生成过程包括以下步骤:

  • 在模块的源路径中编译源代码,并将结果输出到输出路径。
  • 在模块的测试路径中编译源代码,并将结果放置到测试输出路径。
  • 在输出路径中创建资源文件的副本。
  • 在“消息”工具窗口中报告问题。

通过 IntelliJ IDEA,您可以使用 Ant、Maven 或 Gradle 生成您的应用程序。

使用Searching Everywhere功能
IntelliJ IDEA指定编译设置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }