“构建”菜单
构建 菜单适用于所有支持的构建系统。OpenIDEA 会根据项目(或当前文件所在模块)自动选择构建系统。
各操作实际执行的命令:
Maven 和 Gradle 使用设置里配置的 wrapper 或本地安装(见下文)。没有
tsconfig.json 但有 build 脚本的 TypeScript 项目会直接运行该脚本。
输出会实时显示在底部的 构建 工具窗口。编译错误和警告按文件分组,同时出现在“问题”视图中,并在编辑器里标出。停止构建 可以取消正在进行的构建。
Maven
项目中有pom.xml 时,右侧会出现 Maven 工具窗口。首次打开项目时,OpenIDEA 会在后台用 Maven 导入项目(读取有效 POM 和依赖树)。
树中依次是 配置文件,然后是每个项目及其 生命周期、插件(展开可看到各个目标)、依赖、运行配置 和子模块。双击目标即可运行,也可以多选后一起运行。右键目标可以选 运行 ’…’、调试 ’…’ 和 创建运行配置…。从树中运行目标会生成一个临时运行配置。
工具栏:
- 重新加载所有 Maven 项目:重新读取 POM 和依赖树。
- 添加 Maven 项目:添加导入时没有找到的
pom.xml。右键项目可以取消链接。 - 运行 Maven 构建:运行选中的目标。
- 执行 Maven 目标…:弹出带目标补全的输入框(按 Tab 补全,按 Enter 运行),还会列出最近执行过的命令。
- 切换离线模式(
-o)和 切换“跳过测试”模式(-DskipTests):对之后所有 Maven 运行生效。 - 分析依赖…:打开依赖分析器。
- Maven 设置…:打开 设置 › 构建、执行、部署 › Maven。
修改后重新加载
在编辑器里修改 POM 后,工具窗口会提示 自上次重新加载以来构建文件已更改,并提供 加载 Maven 更改 按钮。如果构建文件是在编辑器之外改动的(比如git pull 或其他工具),Maven 项目会自动重新加载。
pom.xml 中的编辑器支持
在 ${property} 上 ⌘ 点击 / Ctrl 点击(或 导航 › 声明或用法,⌘B / Ctrl+B),会跳到定义它的属性,无论它在当前 POM 还是父 POM 中。在没有写版本号的依赖或插件上使用,会跳到提供版本的 <dependencyManagement> 或 <pluginManagement> 条目。
Maven 设置
设置 › 构建、执行、部署 › Maven:Gradle
项目中有 Gradle 构建文件时,右侧会出现 Gradle 工具窗口。首次打开项目时,OpenIDEA 会在后台用 Gradle 读取任务列表。 树中是根项目及其 任务(已分组)、运行配置 和子项目,双击任务即可运行。工具栏有 重新加载所有 Gradle 项目、关联 Gradle 项目(添加没被识别到的构建)、运行 Gradle 任务、执行 Gradle 任务…、切换离线模式(--offline)和 分析依赖…。
构建脚本变化后,工具窗口会提示 自上次重新加载以来构建文件已更改,并提供 加载 Gradle 更改 按钮。
在构建脚本里,对版本目录别名(如 libs.spring.boot.starter)使用 导航 › 声明或用法,会跳到 gradle/libs.versions.toml 中的对应条目,悬停时也会显示其声明。在版本目录文件中,version.ref 和 bundle 成员都能跳到对应条目。
Gradle 设置
设置 › 构建、执行、部署 › Gradle:依赖分析器
在 Maven 或 Gradle 工具窗口中,或在pom.xml / 构建脚本的右键菜单中选择 分析依赖…,会在编辑器标签页中打开依赖分析器,内容包括:
- Maven 模块的依赖树(通过
dependency:tree -Dverbose读取,被省略的重复项也会列出),或 Gradle 项目按配置解析出的依赖; - 版本冲突(勾选 仅显示冲突),可以树形或列表显示;
- 引入某个库的所有路径,可以用 跳转到源代码 定位到声明处。
<exclusion> 并重新加载。
.NET
.NET 工具窗口(右侧,可在“查找操作”中运行 .NET 工作区 打开)列出解决方案中的项目。选中项目后可以查看目标框架、项目引用、NuGet 包和测试:- 搜索 NuGet,安装、更新、移除包;
- 发现 .NET 测试,以及 运行所有测试 / 运行测试;
- 安装 TRX 报告支持:为 Microsoft.Testing.Platform 项目安装报告扩展,测试结果才能显示在测试树里。
CMake
设置 › 构建、执行、部署 › CMake 中可以定义 CMake profile:构建类型、生成器、CMake 参数、构建目录、构建参数和环境变量。构建项目 使用第一个 profile;没有 profile 时,使用第一个已有CMakeCache.txt 的目录,否则使用 build。CMake 目标会显示为运行配置。
Cargo、Go、npm 等
这些构建系统没有专门的工具窗口:- Cargo:每个二进制一个运行配置,另有
cargo test、cargo build,也可以用“构建”菜单。在Cargo.toml中,版本补全会列出已发布的 crate 版本;有更新的依赖版本可用 检查会提供快速修复,一键更新版本要求。 - Go:按模块生成运行和测试配置(包括
go.work工作区),也可以用“构建”菜单。在go.mod中,版本补全会列出模块版本。 - npm、pnpm、yarn、bun、Deno:每个
package.json脚本或 Deno task 一个运行配置,package.json的scripts条目旁有 ▶ 图标。包管理器根据锁文件确定。 - Make 和 just:每个目标或 recipe 一个运行配置。
- Composer:
vendor/不存在或与composer.lock不一致时,会出现横幅提示,可以直接运行composer install。
node_modules 中的包、Maven 和 Gradle 的 jar、JDK、Python 解释器的库)会显示在项目视图的 外部库 下,以只读方式打开。