# 编译器

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

> **TL;DR**
> `文件 | 设置 | 构建、执行、部署 | 编译器`  适用于 Windows 和 Linux
>
>
>
> `%instance% | 设置 | 构建、执行、部署 | 编译器`  适用于 macOS

使用此节点配置下表中指定的常用选项以及在 IntelliJ IDEA 中使用的编译器的特定选项。

|  条目  |  描述  |
| --- | --- |
|    资源模式    |     在此字段中，指定描述应被识别为资源的文件并因此被复制到输出目录的正则表达式。 请使用分号  `;` 分隔各个模式。       支持通配符和否定表达式。 以下符号被接受：        * `*` 代表任意数量的任意符号，可能为零。    * `?` 表示一个符号。    * `。` 代表一个分隔符。    * `!` 否定其应用的整个掩码。 因此，任何名称和扩展名不匹配模式的文件将被识别为资源文件。    * `/` 表示路径分隔符。    * `/**/` 表示任意数量的目录。    * `<dir>:<pattern>` 表示位于源根目录下的任何目录 `<dir>` ； `<pattern>` 是符合上述要求的任何模式。      以下示例展示了在资源模式中使用通配符：        * `*.xml` ——任何 XML 文件。    * `!*.xml` - 任何扩展名不是 `.xml` 的文件。    * `z*.properties;z*.gif;z*.png;z*.jpeg;z*.xml` ——任意 `.properties` 、 `.gif` 、 `.png` 、 `.jpeg` 或 `.xml` 文件，文件名以 `z` 开头。    * `MyResources：*` - 目录中的所有文件和文件夹 `MyResources` 。     > **Tip:** > 如果您希望在具有 Groovy 支持的模块中跳过某些 Groovy 文件的编译，请将它们包含在资源模式列表中。    |
|    在重新构建时清除输出目录    |  选中此选项以删除输出目录中的所有文件。 如果输出目录包含 IntelliJ IDEA 不知道的文件，如资源等，请勿选中此选项。 如果源路径和输出路径有任何交集，系统会提示您通过分离源目录和输出目录或忽略该问题来解决此问题。  |
|    为 notnull 注解的方法和参数添加运行时断言    |  如果选择此选项，断言将在运行时添加到所有使用  `@NotNull` 注解的方法和参数。 注解列表是 [可配置的](nullable-notnull-configuration.html)（点击右侧的   配置注释…   按钮）。  |
|    在编辑器中自动显示错误    |  如果选中此复选框，则包含第一个编译错误的文件将在编辑器中打开，并高亮显示包含该错误的行。  |
|    在构建完成时显示通知    |  如果选中此复选框，则构建过程持续超过 1 分钟时会显示通知气球。 如果此构建过程持续时间少于一分钟，或未选中复选框，则消息将在 [通知](notifications.html)工具窗口和 [状态栏](null)中显示。  |
|    自动构建项目    |  选中此复选框可在每次项目文件在您的磁盘上更改时自动编译项目，例如，在保存或自动保存时，或当您从版本控制系统获取最新项目修订版时。  |
|    并行编译独立模块    |     同时编译没有相互依赖的模块。 选择   启用   始终使用并行编译，或选择   自动   根据硬件规格使用并行编译。       此选项可加快由 IDE 编译的所有基于 Maven 的项目的编译时间。 这可能需要增加 [堆大小](#heap)。     |
|    在依赖项更改时重新构建模块    |  选中此复选框即可重新构建具有更改依赖项的模块。  |
|  构建进程  |
|    共享堆大小    |     在文本字段中，指定构建过程所需的堆大小。       IDE 编译器会默认在当前项目和创建的任何新项目中使用此值。 它存储在项目设置中，并且可以通过 VCS 共享。      > **Note:** > * 如果您正在使用 64 位 JDK 进行编译，那么构建过程可能需要更多内存。 > > * 该值存储在项目设置中。 如果需要覆盖此值，请在字段 用户本地虚拟机选项 中写入 `Xmx<N>m` ，其中 `<N>` 是以兆字节为单位的堆大小值。 一旦该字段中的 用户本地虚拟机选项 识别出此值，字段 共享堆大小 将变为只读并被忽略。    |
|    共享虚拟机选项    |  这些 VM 选项将在启动构建进程时添加到命令行。 共享 VM 选项存储在项目设置中，可以进行版本控制。  |
|    用户本地堆大小    |     仅为此特定项目设置构建进程的值。 此值不会通过 VCS 共享，其他项目也不会继承它。 但是，如果在另一台计算机上使用其他版本的 IntelliJ IDEA 打开此项目，该值将会保留。       用户本地堆大小值会覆盖   共享堆大小   字段中指定的值。     |
|    用户本地虚拟机选项（重写共享选项）    |     这些 VM 选项将在启动构建进程时添加到命令行。 用户本地 VM 选项存储在  `workspace.xml`  文件中，因此这些更改仅对其作者可见。       用户本地的 VM options 比共享的 VM options 优先级更高。 这意味着，如果   用户本地虚拟机选项   字段中写入了任何内容，则会忽略   共享虚拟机选项   字段，并改用   用户本地虚拟机选项   字段中的值。     |

