【IDEA教程】使用 IntelliJ IDEA 编译和构建应用程序

IntelliJ IDEA 编译和构建过程编译源文件并将外部库、属性文件和配置组合在一起以生成一个活的应用程序。IntelliJ IDEA 使用根据 Java 规范工作的编译器。
您可以编译单个文件,对模块或项目使用增量构建,并从头开始重新构建项目。
如果您有纯 Java 或 Kotlin 项目,我们建议您使用 IntelliJ IDEA 来构建您的项目,因为 IntelliJ IDEA 支持增量构建,这显着加快了构建过程。
但是,如果 IntelliJ IDEA 原生构建器的构建脚本文件使用自定义插件或任务,它可能无法正确构建 Gradle 或 Maven 项目。在这种情况下, Gradle或Maven的构建委托可以帮助您正确构建项目。
编译单个文件或类
- 在编辑器中打开所需的文件,然后从主菜单中选择Build | 重新编译“类名” ( Ctrl+Shift+F9)。
或者,在Project工具窗口中,右键单击所需的类,然后从上下文菜单中选择Recompile 'class name'。
如果在编译过程中出现错误,IntelliJ IDEA 将在Review 编译和构建输出中显示它们以及警告消息。
更改编译输出位置
编译源代码时,IntelliJ IDEA 会自动创建一个包含已编译.class文件的输出目录。
在输出目录中,IntelliJ IDEA 还为您的每个模块创建子目录。
子目录的默认路径如下:
- 来源: <ProjectFolder> /out /production /<ModuleName>
- 测试: <ProjectFolder> /out /test /<ModuleName>
在项目级别,您可以更改输出路径的<ProjectFolder>/out部分。如果您这样做(例如,指定一些<OutputFolder>而不是<ProjectFolder>/out)但不在模块级别重新定义路径,编译结果将转到<OutputFolder> /production /<ModuleName>和<OutputFolder > /test /<ModuleName>。
在模块级别,您可以为模块源和测试单独指定任何所需的编译输出位置。
指定编译输出文件夹
- 打开项目结构对话框(文件|项目结构 Ctrl+Alt+Shift+S)。
- 在Project Settings中,选择Project并在Project compiler output字段中,指定相应的路径。
对于模块,选择Modules、您需要的模块和Paths选项卡。更改编译器输出部分下的输出文件夹的位置。
建造
当您执行Build 命令时,IntelliJ IDEA 会编译构建目标中的所有类并将它们放在输出目录中。
当您更改构建目标中的任何类然后执行构建操作时,IntelliJ IDEA 会执行增量构建,仅编译更改的类。IntelliJ IDEA 还递归地构建类的依赖项。
构建模块或项目
- 选择要编译的模块或项目,然后从主菜单中选择Build | 构建项目( Ctrl+F9)。
IntelliJ IDEA 在Review compilation and build output中显示编译结果。
如果将模块依赖项添加到主模块并构建模块,IntelliJ IDEA 也会构建依赖模块并将其显示在主模块旁边的输出目录中。如果依赖的模块有自己的模块依赖,那么 IntelliJ IDEA 会从依赖最少的模块开始递归地编译它们。
模块依赖项的排序方式对于编译的成功可能非常重要。如果任何两个 JAR 文件包含同名的类,IntelliJ IDEA 编译器将使用它在类路径中找到的第一个 JAR 文件中的类。
重建
当您执行重建命令时,IntelliJ IDEA 会清除整个输出目录,删除构建缓存并从头开始构建项目或模块。当类路径条目发生更改时,它可能会有所帮助。例如,添加、删除或更改项目使用的 SDK 或库。
重建模块或项目
- 从主菜单中,选择构建 | 为整个项目重建项目或构建 | 为模块重建重建“模块名称”。
IntelliJ IDEA 在Review 编译和构建输出中显示构建结果。
当Rebuild Project操作委托给Gradle或Maven时,IntelliJ IDEA 在重建项目时不包括
clean
任务/目标。如果需要,可以使用Gradle或Maven工具窗口中的Execute Before Rebuild选项在重建clean
之前执行命令。
后台编译(自动构建)
您可以将 IntelliJ IDEA 配置为在您每次对其进行更改时自动构建您的项目。后台编译的结果显示在问题工具窗口中。
配置后台编译
- 按Ctrl+Alt+S打开 IDE 设置并选择Build、Execution、Deployment | 编译器。
- 在Compiler页面上,选择Build project automatically。
现在,当您在类文件中进行更改时,IntelliJ IDEA 会自动执行项目的增量构建。
当您保存文件 ( Ctrl+S) 或如果应用程序空闲 N 秒时自动保存文件时,也会触发自动构建。在系统设置对话框中选择的选项。
启用自动构建项目选项也会在设置/首选项 |中启用构建项目。工具 | 保存操作
当您在项目中启用了省电模式选项(文件|省电模式)时,自动构建操作被禁用,您需要手动运行构建(Ctrl+F9)。
运行前编译
默认情况下,当您运行应用程序时,IntelliJ IDEA会编译您尝试运行的类所在的模块。
如果要更改该行为,可以在“运行/调试配置”对话框中进行。
配置运行/调试配置
- 从主菜单中,选择运行 | 编辑配置。
- 在打开的对话框中,创建新的或打开现有的运行配置。
- 单击修改选项链接。
- 在Add Run Options列表中的Before Launch部分下,选择Add before launch task。任务列表变为可用并且将选择构建。单击
以禁用它。
- 如果您需要添加新的配置操作,请单击
并从打开的列表中选择所需的选项。
例如,如果您选择构建项目,那么 IntelliJ IDEA 将在运行之前构建整个项目。在这种情况下,将考虑使用Build操作在构建中未包含的依赖项。如果选择Build, no error check选项,即使编译结果有错误,IntelliJ IDEA 也会运行应用程序。
查看编译和构建输出
IntelliJ IDEA 在构建工具窗口中报告编译和构建结果,该窗口显示有关错误和警告的消息以及编译的成功步骤。
如果您配置了auto-build,那么 IntelliJ IDEA 会使用 Problems 工具窗口来获取消息。即使构建成功执行,该窗口仍然可用。要打开它,请单击状态栏上的自动构建。
双击消息跳转到源代码中的问题。如果需要调整编译器设置,请单击。
将应用程序打包到 JAR
编译并准备好代码后,您可以将应用程序打包到 Java 存档 (JAR) 中,以便与其他开发人员共享。已构建的 Java 归档文件称为工件。
为 JAR 创建工件配置
- 从主菜单中,选择文件 | 项目结构 Ctrl+Alt+Shift+S并单击工件。
- 单击
,指向JAR,然后选择From modules with dependencies。
- 在Main Class字段的右侧,单击
并在打开的对话框中选择主类(例如HelloWorld (com.example.helloworld))。
IntelliJ IDEA 创建工件配置并在Project Structure对话框的右侧显示其设置。
- 应用更改并关闭对话框。
构建 JAR 工件
- 从主菜单中,选择构建 | 构建工件。
- 指向创建的.jar ( HelloWorld:jar ) 并选择Build。
如果您现在查看out/artifacts文件夹,您会在那里找到您的.jar文件。
在构建项目时,存储在Resources 根目录中的资源默认会复制到编译输出文件夹中。如有必要,您可以在输出文件夹中指定另一个目录来放置资源。
运行打包的 JAR
要运行打包在 JAR 中的 Java 应用程序,IntelliJ IDEA 允许您创建专用的运行配置。
如果您有Gradle项目,请使用 Gradle 创建并运行 JAR 文件。
对于 Maven 项目,您可以使用 IntelliJ IDEA 来运行 JAR 文件。如果您有 Spring Boot Maven 项目,请参阅Spring。
创建运行配置
- 按Ctrl+Shift+A,找到并运行编辑配置操作。
- 在Run/Debug Configurations对话框中,单击
并选择JAR Application。
- 为新配置添加名称。
- 在JAR 路径字段中,单击
并指定您计算机上 JAR 文件的路径。
- 在Before launch下,单击
,在打开的对话框中选择Build Artifacts。
这样做意味着每次执行运行配置时都会自动构建 JAR。
运行配置允许您定义您希望如何运行应用程序,使用哪些参数和选项。您可以为同一个应用程序设置多个运行配置,每个配置都有自己的设置。
执行运行配置
- 在工具栏上,选择已创建的配置,然后单击
运行配置选择器右侧的 。或者,Shift+F10如果您喜欢快捷方式,请按。
和以前一样,运行工具窗口打开并显示应用程序输出。
如果进程已成功退出,则应用程序已正确打包。