摇篮项目
最后修改时间:2023 年 10 月 10 日IntelliJ IDEA 允许您管理Gradle项目。您可以链接、忽略项目、使用配置文件以及同步 Gradle 和 IntelliJ IDEA 项目中的更改。您还可以配置 Gradle 复合构建、Gradle 源集、构建和运行操作。
导航到 build.gradle 文件
在Gradle工具窗口中,右键单击链接的项目。
从上下文菜单中,选择打开 Gradle config 。F4
IntelliJ IDEA 导航到适当的 Gradle 配置文件,并在编辑器中打开相关的build.gradle文件。
在多模块项目中导航
IntelliJ IDEA 支持导航到多模块 Gradle 项目的父构建脚本内的子项目。
打开父项目的build.gradle 。
使用快捷方式导航到子项目。CtrlClick
您还可以使用“查找”工具窗口查看子项目的用法并检查结果。AltF7
取消链接已链接的 Gradle 项目
当您取消链接 Gradle 项目时,IntelliJ IDEA 会删除所有相关模块和内容根,从Gradle工具窗口中删除 Gradle 项目并停止其同步。如果您需要从当前 IntelliJ IDEA 项目中完全删除之前链接的 Gradle 项目,这可能会有所帮助。
在Gradle工具窗口中,右键单击链接的项目。
从上下文菜单中,选择取消链接 Gradle 项目( )。或者,您可以选择链接的项目并单击工具窗口工具栏上的 。Delete
如果您不想从 IntelliJ IDEA项目工具窗口中删除项目,请在“导入 Gradle 项目”弹出窗口中清除模块的复选框。
单击“确定”。
如果需要链接回项目,请在Project工具窗口中右键单击项目的build.gradle文件或build.gradle.kts(如果是 Kotlin 项目),然后选择Import Gradle Project。
忽略 Gradle 项目
您可以使用忽略 Gradle 项目选项来停用 Gradle 项目。在这种情况下,IntelliJ IDEA 会将忽略的 Gradle 项目和子项目保留在Gradle工具窗口中,但停止将它们导入到项目中(模块、内容根、任务等)。但是,IntelliJ IDEA 会将忽略的项目与当前项目同步。如果您需要跳过不相关的子项目(例如buildSrc ) ,这可能会有所帮助。
在Gradle工具窗口中,右键单击要忽略的项目。
从上下文菜单中,选择“忽略 Gradle 项目”。
在打开的窗口中,选择要停用的项目和模块,然后单击“确定”。
如果要激活 Gradle 项目或模块,请从上下文菜单中选择“忽略 Gradle 项目” 。
孤立模块
孤立模块是在导入过程中在以下情况下被删除的 IDE 模块:
当您手动删除build.gradle文件中的模块,然后重新导入项目时。
当您在Gradle工具窗口中的模块上使用“忽略项目”操作,然后重新导入项目时。
在所有这些情况下,IntelliJ IDEA 都会提示您恢复已删除的模块。
您可以在“孤立模块”对话框中选择要恢复的模块。
通常您不需要恢复任何模块,因为这些只是包含 IDE 模块设置的.iml文件。如果您在其中指定了一些用户定义的设置,您可能只想恢复它们。
重新加载链接的 Gradle 项目
当您打开Gradle 项目时,同步会自动完成。此外,当 IntelliJ IDEA 检测到构建脚本的任何外部更改(例如 VCS 更新或 IDE 外部进行的某些编辑)时,相关项目将自动重新加载。
如果需要,您可以手动触发项目的同步。
在Gradle工具窗口中,右键单击链接的项目。
从上下文菜单中,选择“重新加载 Gradle 项目” 。
调用此操作时,IntelliJ IDEA 会解析Gradle工具窗口中的项目结构。
IntelliJ IDEA 无法仅重新加载项目的一部分,它会重新加载整个项目,包括模块和依赖项。
如果您通过“项目结构”对话框(单击主菜单中的 )配置依赖项,则该依赖项将仅显示在 IntelliJ IDEA项目工具窗口中,而不显示在Gradle工具窗口中。请注意,下次重新导入项目时,IntelliJ IDEA 将删除添加的依赖项,因为 IntelliJ IDEA 将 Gradle 配置视为单一事实来源。
单击状态栏可在构建工具窗口中查看同步结果。
提示
要重新加载所有 Gradle 项目,请单击Gradle工具窗口中工具栏上的。
配置自动重新加载
在“设置”对话框 ( ) 中,转到“构建、执行、部署”| 构建工具。CtrlAlt0S
或者,在Gradle工具窗口中,单击并选择“自动重新加载设置”选项。
在构建工具设置中,指定以下选项:
重新加载构建脚本中的更改:默认情况下选择此选项。如果您想禁用自动重新加载并手动控制重新加载过程,请取消选中此复选框。
任何更改:如果您希望在对build.gradle进行任何更改或外部更改后自动重新加载项目,请选择此选项。
每次在编辑器中手动更改 Gradle 构建脚本时,都需要加载更改。IntelliJ IDEA 在编辑器的右侧显示一个通知图标,建议加载对项目所做的Gradle 更改( )。CtrlShift0O
使用“任何更改”选项,IntelliJ IDEA 会自动重新加载所有更改。
外部更改:当您选择此选项时,IntelliJ IDEA 仅在 VCS 更改以及对 IDE 外部的构建文件进行更改后自动重新加载项目。
配置 Gradle 复合构建
在开始配置复合构建之前,请确保为您的项目配置了 Gradle 版本 4.5 或更高版本。
笔记
您可以使用settings.gradle文件来包含Gradle 复合构建的Gradle 构建。
在编辑器中打开settings.gradle文件。
使用该
includeBuild
命令,指定要添加为项目依赖项的构建的位置。
您还可以使用Gradle工具窗口来配置复合构建。
使用 Gradle 源集
IntelliJ IDEA 允许您使用Gradle 源集来解析 Gradle 项目。源集被视为 IntelliJ IDEA 项目中的模块。您可以声明自定义源集,IntelliJ IDEA 将其作为模块添加到项目中。
当您创建 Gradle 项目时,IntelliJ IDEA 会自动创建一个主源集目录,其中包含两个源集 - main和test。IntelliJ IDEA 还在Gradle工具窗口的“依赖项”节点中显示编译和运行时配置。
在编辑器中打开gradle.build文件。
声明一个自定义源集(在我们的示例中,它是 api)。
sourceSets { api } dependencies { compile sourceSets.api.output }
(此源集包含没有实现的接口。接口的实现位于默认的主源集中。)
打开Gradle工具窗口可以看到IntelliJ IDEA添加了
api
编译和运行时配置。测试源集包含适当的依赖项。请注意,默认的主源集对api源集的输出具有编译依赖性。
转到文件| 项目结构 打开项目结构。请注意,所有源集都表示为分组为单个模块的单独模块。如果单击测试模块并选择“依赖项”选项卡,您将看到源集的依赖项列表。CtrlAltShift0S
您可以添加自定义测试,并使用源集功能将它们与主要测试分开运行。
声明源集的方式与声明自定义源集的方式相同。除了源集的名称之外,还指定输出目录和将运行声明的测试的任务。例如,声明一个集成测试
integrationTest
。sourceSets { integrationTest { java { srcDir 'src/integrationtest/java' } resources { srcDir 'src/integrationtest/resources' } compileClasspath += sourceSets.main.runtimeClasspath } } task integrationTest(type: Test) { description = "Runs Integration Tests" testClassesDirs = sourceSets.integrationTest.output.classesDirs classpath += sourceSets.integrationTest.runtimeClasspath }
在Gradle工具窗口中,单击任务 | 其他。
在打开的列表中,双击
integrationTest
运行它。
在Gradle项目中添加包前缀
如果您在 Gradle 项目中使用包前缀,请在build.gradle文件中指定它们。这样,当您重新导入项目时,所有内容都会被保存。
有关更多信息,请参阅https://github.com/JetBrains/gradle-idea-ext-plugin。
打开build.gradle文件。
添加以下插件以支持包前缀:
plugins { id "org.jetbrains.gradle.plugin.idea-ext" version "0.5" }
添加包前缀。例如,您有以下一组源集:
sourceSets { main.java.srcDirs = [] main.java.srcDirs += "src" main.java.srcDirs += "src/main/java" main.java.srcDirs += "../other-root/src/main/java" }
使用以下代码将包前缀(在我们的示例中为“org.example”)添加到其中:
idea { module { settings { packagePrefix["src"] = "org.example" packagePrefix["src/main/java"] = "org.example" packagePrefix["../other-root/src/main/java"] = "org.example" } } }
重新导入您的更改或使用自动导入。
在 build.gradle 文件中指定特定于 IDE 的设置
使用gradle-idea-ext插件,您可以描述项目设置,例如项目编码以及build.gradle文件内属性文件的编码。
打开build.gradle文件。
添加以下插件以支持编码配置:
plugins { id "org.jetbrains.gradle.plugin.idea-ext" version "0.5" }
使用以下代码描述项目编码:
import org.jetbrains.gradle.ext.EncodingConfiguration.BomPolicy idea { project { settings { encodings { encoding = 'windows-1251' bomPolicy = BomPolicy.WITH_NO_BOM properties { encoding = '<System Default>' transparentNativeToAsciiConversion = false } mapping['../sample-gradle-free/module'] = 'windows-1251' mapping['module'] = 'windows-1251' mapping['module2/src/main/java'] = 'windows-1251' } } } }
笔记
<System Default> 是一个字符串常量,指示将使用系统默认编码设置。
重新导入您的更改或使用自动导入。
使用构建源
如果您有一个包含多个 Java、Groovy 或 Kotlin 类的大型 Gradle 脚本,您可以将这些类移动到 buildSrc 目录并从主 Gradle 脚本中引用它们。在这种情况下,您可以确保build.gradle文件的可读性。
如果您没有 和 现有
buildSrc
,请将其作为 Gradle模块添加到您的主项目中。在编辑器中打开主build.gradle文件,并将所需的类移动到buildSrc目录的main子目录。
从项目的build.gradle文件运行您的任务。
提示
如果您需要更改在 Gradle 脚本中引用的类的名称,您可以使用重命名重构。 IntelliJ IDEA 将更改应用于所有引用。ShiftF6
配置构建和运行操作
默认情况下,IntelliJ IDEA 使用 Gradle 来构建和运行项目。
当您构建项目 ( Build | Build Project ) 时,IntelliJ IDEA 使用 Gradle 调用相应的任务。Gradle 还从“运行”菜单执行“运行”和“调试”操作。HotSwap也会在调试过程中被触发并重新加载类。
如果您有链接的项目,您可以配置如何构建每个链接的项目。
笔记
如果您在项目中使用annotationProcessors ,我们建议您将运行和构建操作委托给Gradle,以便在项目中正确启用注释处理器。
在“设置”对话框 ( ) 中,转到“构建、执行、部署”| 摇篮。CtrlAlt0S
在Gradle设置页面的Gradle 项目部分中,选择您需要的 Gradle 项目。
在“构建并运行使用”列表中,选择适当的选项并单击“确定”保存更改。
如果您想使用 IntelliJ IDEA 构建 Gradle 项目,则需要显式指定。
使用 IntelliJ IDEA 构建纯 Java 或 Kotlin 项目可能会有所帮助。由于 IntelliJ IDEA 支持增量构建,因此它可以加快构建过程。但是,请记住,IntelliJ IDEA 编译器不支持 Gradle 项目构建处理的某些部分,并且可能会导致正确构建项目时出现问题。
单击Gradle工具窗口中的。
或者,在“设置”对话框 ( ) 中,转到“构建、执行、部署 |构建工具 |Gradle”。CtrlAlt0S
在Gradle页面上,从构建和运行使用列表中选择Intellij IDEA。
请注意,运行测试使用选项保持活动状态,即使您将所有构建和运行操作委托给 IntelliJ IDEA,您也可以选择运行测试的方式。
单击“确定”。
现在,如果您构建 Gradle 项目,它将使用 IntelliJ IDEA 构建。
感谢您的反馈意见!