编译应用程序#
本节介绍如何:
请注意,模块依赖项的排序方式对于编译成功非常重要。请参阅模块依赖性。
编译器和生成器#
IntelliJ IDEA的Java构建器构建或汇集源文件,外部库,属性文件和配置以生成活动应用程序。构建器使用根据Java规范工作的编译器。
编译器将遇到的问题视为错误和警告。与错误不同,警告不会阻止成功编译。消息窗口中报告了警告和错误。
以下关键原则是汇编概念的基础:
-
所有编译任务都在一个单独的进程中执行,完全独立于主IDE的进程,以摆脱“内存不足”和其他资源争用。
-
Java编译器通过Java API“在进程中”使用,以获得更好的性能和更灵活的注释处理器管理。
-
如果启用了此选项,则编译将由IDE文件系统中的事件自动触发。
要构建项目,您不必离开编辑环境:使用IntelliJ IDEA,您可以立即编译,构建和运行源代码。
请注意,模块依赖项的排序方式对于编译成功非常重要。请参阅模块依赖性。
在这部分:
编译类型#
IntelliJ IDEA提出了几种编译和构建应用程序的方法。“ 构建”菜单中提供了相应的命令。
-
编译<compilation_scope>。 编译指定范围内的所有源文件。这种情况下的范围可以是文件,包等。有关详细信息,请参阅编译目标一节。
-
建设项目。 自上次编译以来修改的整个项目中的所有源文件都已编译。如果合适,还会编译相关的源文件。此外,还执行与修改源上的编译或构建过程相关的任务。例如,如果在“ 验证”页面上启用了相应的选项,则会执行EJB验证。有关详细信息,请参阅Building Project一节 。
-
构建模块。递归编译是自所选模块中的上一次编译以及它依赖的所有模块中已经修改的所有源文件。有关详细信息,请参阅构建模块部分。
-
重建项目。重新编译项目中的所有源文件。当类路径条目发生更改时,这可能是必需的,例如,添加,删除或更改使用的SDK或库。有关详细信息,请参阅重建项目部分 。
支持的编译器#
目前,IntelliJ IDEA支持以下Java编译器:
-
javac的。此编译器取自当前分配给项目的Java SDK。
-
日食。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构建应用程序。
指定编译设置#
编译输出位置#
您的源和测试源以及每个模块都有单独的编译输出文件夹。
默认情况下,编译结果输出到:
-
来源: <ProjectFolder> / out / production / <ModuleName>
-
测试: <ProjectFolder> / out / test / <ModuleName>
在项目级别,您可以更改输出路径的<ProjectFolder> / out部分。如果你这样做(比如指定一些<OutputFolder>而不是<ProjectFolder> / out)但不重新定义模块级别的路径,编译结果将转到<OutputFolder> / production / <ModuleName>和 <OutputFolder > / test / <ModuleName>。
在模块级别,您可以单独为模块源和测试指定任何所需的编译输出位置。
指定编译输出文件夹#
编译输出文件夹在“ 项目结构”对话框(“ 文件”|“项目结构”)中指定。
项目默认文件夹。 选择项目。在项目编译器输出字段中,指定相应的路径。
模块输出文件夹。 选择Modules,选择感兴趣的模块,然后选择Paths。您想要的控件位于编译器输出下方的上半部分。
配置编译器设置#
您可以修改已识别资源的列表,从编译中排除某些路径,选择所需的编译器,配置注释处理等。
-
1. 在“ 设置/首选项”对话框(Ctrl+Alt+S)中,选择“ 构建”,“执行”,“部署”。
-
2. 例如, 在“ 编译器”页面上,您可能希望修改描述要识别为资源的文件扩展名的正则表达式(“ 资源模式”字段)。使用分号(
;
)分隔各个模式。请参阅通配符和示例列表。 -
3. 在“ 排除”页面上,指定不应包含在编译中的文件和文件夹。使用将项目添加到列表中。
-
-
注意:
如果排除的路径是正在编译的源代码的依赖项,则此路径将包含在编译中并由编译器根据需要进行处理。 -
如果文件包含错误并且无法编译,但对于当前项目状态并不重要,或者如果要跳过某些文件而不将它们包含在输出目录中,则可以从编译中排除这些文件。
-
-
-
4. 在Java Compiler页面上,检查所使用的编译器是否是您想要的编译器。如有必要,请选择其他编译器。
-
如果您对与IntelliJ IDEA捆绑在一起的Eclipse编译器版本不满意,可以使用“ 设置”中的“ 路径到ECJ批处理编译器”工具选项 。构建,执行,部署| 编译器| Java编译器并指定特定的Eclipse编译器版本。
-
对于Java 9,
--release
编译器选项在Settings |中 设置 构建,执行,部署| 编译器| Java编译器。它会自动配置Java编译器以生成将链接到给定平台版本的实现的类文件。如果您需要关闭此选项,请清除设置中的复选框。
-
-
6. 应用更改并关闭对话框。
编译目标#
在本页面:
编译目标中的所有源文件#
编译指定目标中的所有源文件#
-
选择文件,模块或包。
-
在主菜单上,选择Build | 重建'目标',或按 Ctrl+Shift+F9。
提示和技巧#
执行编译时,请注意:#
-
从编辑器调用时,此方法编译当前文件。
-
您可以单独编译任何模块。当前所依赖的所有模块也将被编译。
要取消该过程,请执行以下操作之一:#
-
在中间单击进度条
-
点击
-
按Ctrl+F2,然后从弹出菜单中选择该过程。
建筑模块#
在本页面:
制作模块#
制作模块#
-
选择所需模块或此模块中的任何源文件或目录。
-
在主菜单上选择 Build | 使模块'名称'。
取消构建#
要取消该过程,请执行以下操作之一:#
-
在中间单击进度条
-
点击
-
按Ctrl+F2,然后从弹出菜单中选择该过程。
建设项目#
在本页面:
制作一个项目#
要创建项目,请执行以下操作之一#
-
在主菜单上选择Build | 建立项目'名称'。
-
按Ctrl+Shift+F9。
取消构建#
要取消该过程,请执行以下操作之一:#
-
在中间单击进度条
-
点击
-
按Ctrl+F2,然后从弹出菜单中选择该过程。
将模块打包到JAR文件中#
在本页面:使用工件。
从模块构建JAR文件#
1. 在主菜单上,选择Build | 构建神器。
-
2. 从下拉列表中,选择JAR类型的所需工件。
-
该列表显示为当前项目配置的所有工件。要构建所有已配置的工件,请选择“ 构建所有工件” 选项。
-
重建项目#
重建项目#
-
在主菜单上选择Build | 重建项目。
要取消该过程,请执行以下操作之一:#
-
在中间单击进度条
-
点击
-
按Ctrl+F2,然后从弹出菜单中选择该过程。
查看编译和构建结果#
IntelliJ IDEA在“ 消息”工具窗口中报告编译和构建结果,该窗口显示有关错误和警告的消息。每条消息都由一个图标指定,并可能显示一对数字,代表发生问题的行和列。要跳转到源代码中问题的位置,请双击相关消息。
该消息是否有消息显示工具窗口才可用。
要在每次选择相关消息时自动跳转到问题的位置,请右键单击“ 消息”工具窗口,然后选择“ 自动滚动到源”。
将编译消息保存到文本文件#
-
1. 右键单击“ 消息”工具窗口,然后单击“ 导出到文本文件”。
-
2. 在“ 导出预览”对话框中,指定路径和目标文件名,然后单击“ 保存”。
使用多个构建JDK #
为了能够编译应用程序,您需要指定构建JDK。可以在项目级别配置构建JDK。如果您有一个复杂的项目,您可能希望为不同的模块配置不同的JDK。
本主题说明了如果定义了多个JDK,IntelliJ IDEA如何选择构建JDK,以及如何配置它们:
IntelliJ IDEA如何知道使用哪个JDK?#
本节介绍了如果在每个模块的基础上配置多个JDK,则IntelliJ IDEA选择构建JDK的算法。IntelliJ IDEA执行以下操作以确定要用于编译的JDK:
-
IntelliJ IDEA检查项目中使用的所有JDK(即在项目和模块级别定义的JDK)。
-
IntelliJ IDEA计算最新的JDK。这是确保可以编译所有模块的必要条件。
-
如果配置的最新JDK版本低于1.6,将使用用于运行IntelliJ IDEA的JDK版本。此限制与以下事实有关:从JDK 1.6开始支持IntelliJ IDEA用于构建项目的编译器API。
- 虽然将使用特定版本的编译器(根据所选的JDK版本),但是每个单独的模块将使用javac的交叉编译功能针对在项目设置中为此特定模块定义的JDK库进行编译。
这可以保护您免受针对较新库编译模块的情况的影响,而不是针对设置了依赖项的库。
配置构建JDK #
-
1. 打开“ 项目结构”对话框。
-
2. 执行以下操作之一:
请注意,您还可以通过编辑相应的运行/调试配置来覆盖特定调试或测试会话的项目级或模块级JDK设置。
注释处理器支持#
在这个部分:
基础知识#
如果在项目中使用某些自定义注释处理器来生成源和文件,验证代码并生成警告,IntelliJ IDEA使您可以在编译过程中轻松调用这些处理器 。
IntelliJ IDEA允许您:
-
直接从项目类路径或指定位置获取注释处理器。
-
调整应该由特定配置文件的注释处理覆盖的模块集。
-
存储相对于指定位置的注释处理结果。
-
执行注释处理。
启用处理注释时,编译器会在编译过程中处理注释。
注释配置文件#
在注释配置文件的基础上执行注释处理。
甲轮廓是一组用于注释处理(使用注解处理器的,注释处理输出的位置,特定注释处理器和它们的参数)的配置选项。
默认配置文件始终存在。默认情况下,包含项目的所有模块都使用此配置文件。创建新配置文件时,可以将模块与它们关联。因此,可以将若干模块分组以使用一种类型的注释处理。
配置注释处理#
在本页面:
创建注释配置文件#
创建注释配置文件#
1.在“ 注释处理器”页面中,单击“确定” 。
2.在“ 创建新配置文件”对话框中,指定配置文件 名称。
要删除配置文件,请在列表中选择它,然后单击。这样,与此配置文件关联的所有模块都将移至默认配置文件。
无法删除默认配置文件。
将模块与配置文件关联#
将模块与注释概要文件关联#
默认情况下,项目的所有模块都与默认配置文件相关联。
-
1. 在配置文件下的模块列表中选择一个模块。
-
2. 单击,或按F6。
-
3. 从下拉列表中,选择要将所选模块移动到的目标配置文件。
配置注释配置文件#
要配置配置文件的注释处理,请按照下列步骤操作#
-
1. 在“ 注释处理器”页面中,选择所需的注释配置文件。
-
2. 通过选中相应的复选框启用处理注释。
-
3. 请执行下列操作:
-
- 选择注释处理器的位置。您可以选择从类路径中使用注释处理器,也可以通过从“ 选择路径”对话框中选择它来指定其位置 。
-
- 在“ 目录名称”字段中,键入将存储注释处理器输出的目录的名称。如果该字段留空,则注释处理器生成的文件将存储在项目输出目录下。指定名称后,在编译期间自动注释处理后,将在内容根目录下创建具有此名称的目录。
-
- 指定要启动的处理器的完全限定名称。如果未指定任何内容,则IntelliJ IDEA将启动在指定位置检测到的所有处理器。
-
- 指定要传递给注释处理器的其他参数。
-