TeamCity On-Premises 2024.03 Help

检查

Inspections (IntelliJ IDEA) 构建运行程序旨在基于 IntelliJ IDEA 检查 为您的项目运行代码分析。 除了 TeamCity 在首次启动时自动下载并安装的版本之外,还可以安装另一个版本的 JetBrains IntelliJ Inspections 和 Duplicates Engine ,并/或使用管理 | 工具 页面更改默认设置。

IntelliJ IDEA 的代码分析引擎能够检查您的 Java 、 JavaScript 、 HTML 、 XML 等代码,并允许您

  • 发现可能的错误;

  • 定位 "dead" 代码;

  • 检测性能问题;

  • 提高代码结构和可维护性;

  • 确保代码符合指南、标准和规范。

请参考 IntelliJ IDEA 文档 以获取更多详细信息。

这个页面包含了关于 Inspections (IntelliJ IDEA) 构建运行程序字段的参考信息。

IntelliJ IDEA 项目设置

选项

描述

项目文件类型

为了能够在您的代码上运行 IntelliJ IDEA 检查,TeamCity 需要在此处指定一个 IntelliJ IDEA 项目文件 / 目录,Maven pom.xml 或 Gradle build.gradle

项目的路径

依据在 项目文件类型 中选择的项目类型,这里请指定:

  • 对于 IntelliJ IDEA 项目:项目文件( .ipr )的路径,或者包含 .idea 目录的项目根目录路径。

  • 对于 Maven 项目:到 pom.xml 文件的路径。

  • 对于 Gradle 项目:路径指向 .gradle.gradle.kts 文件。
    这个信息是构建运行程序理解项目结构所必需的。

*.iml 文件中检测全局库和基于模块的 JDK

如果您使用 IntelliJ IDEA 项目来运行检查,那么这个选项就可用。在 IntelliJ IDEA 中,模块设置存储在 *.iml 文件中,因此,如果勾选了这个选项,当保存时,所有模块文件都会自动扫描对全局库和模块 JDK 的引用。 这有助于确保所有的引用都能被正确地解析。

检查 / 重新解析项目

如果您使用 IntelliJ IDEA 项目来运行检查,此选项便可用。点击此按钮以重新解析您的 IntelliJ IDEA 项目,并直接从项目中导入构建设置,例如 JDKs 列表。

工作目录

如果与 Build Checkout Directory 不同,请输入到 Build Working Directory 的路径。

如有不同,可选地指定与检出目录不同的目录。

未解决的项目模块和路径变量

当 IntelliJ IDEA 项目文件引用了 IntelliJ IDEA 模块文件( .iml )时,此部分会被显示:

  • 找不到

  • 允许您输入在 IPR-file 中使用的路径变量的值。

要刷新此部分的值,请点击检查/重新解析项目

选项

描述

<path_variable_name>

如果项目文件包含路径宏,则此字段会出现,路径宏在 IntelliJ IDEA 设置的 路径变量 对话框中定义。 在 设置字段值 中,指定一个路径到要在不同构建代理上使用的项目资源。

项目 SDKs

这一部分提供了项目中检测到的 SDK 列表。

选项

描述

JDK 主页

使用此字段来指定项目的 JDK 主目录。

JDK Jar 文件模式

点击此链接可打开一个文本区域,您可以在此处为项目 JDK 的 jar 文件定义模板。 使用 Ant 规则来定义 jar 文件模式。 默认值适用于 Linux 和 Windows 操作系统:

jre/lib/*.jar

对于 macOS ,请使用以下行:

lib/*.jar ../Classes/*.jar

IDEA 主页

如果您的项目使用 IDEA JDK,请指定 IDEA 主目录的位置。

IDEA Jar 文件模式

点击此链接以打开一个文本区域,您可以在此处为 IDEA JDK 的 jar 文件定义模板。

Java 参数

选项

描述

JDK

选择一个 JDK。 本节详述了可用的选项。 默认值为 JAVA_HOME 环境变量或代理自身的 Java。

JDK 主目录路径

当上方选择了 <Custom> 时,此选项便可用。使用此字段来指定用于运行构建的自定义 JDK 的路径。 如果该字段为空,则会从代理机器的 JAVA_HOME 环境变量或在 构建代理配置 文件( buildAgent.properties )中指定的 env.JAVA_HOME 属性读取JDK Home的路径。 如果这些值未被指定,TeamCity 将使用构建代理进程本身的 Java home。

JVM 命令行参数

附加的 JVM 命令行参数允许您设置初始和最大堆大小,启用额外的日志记录,选择所需的字节码验证器模式等等。

您可以指定标准的(例如以 - 开始,例如 -verbose:[class|module|gc|jni]--dry-run )和非标准的(例如以 -X 开始,例如 -Xmx<size>-XstartOnFirstThread )JVM 选项。

要指定多个命令行参数,使用空格作为分隔符。 例如:

-verbose:gc -Xdiag -Xcomp -Xmx512m -Xms256m

检查参数

在基于 IntelliJ IDEA 的 IDEs 中,报告的代码检查是由 检查配置文件 配置的。
在 TeamCity 中运行检查时,您可以指定要使用的检查配置文件:首先需要在基于 IntelliJ IDEA 的 IDE 中配置检查配置文件,然后再在 TeamCity 中指定。

在准备检查配置文件时,请遵循以下规则:

  • 如果您的检查配置文件使用了作用域,请确保这些作用域是共享的。

  • 锁定配置文件(这可以确保 TeamCity 中存在但在您的 IDEA 安装中未启用的检查不会被 TeamCity 运行);

  • 确保配置文件中没有包含由插件提供的检查项,且这些插件不包含在 IntelliJ IDEA Ultimate 默认分发版中(否则,它们将会被 TeamCity 忽略)。

  • 为了获得最佳结果,您需要在与 TeamCity 使用的版本相同的 IntelliJ IDEA 中编辑检查配置文件(可以在检查构建日志中查找)。

选择检查配置文件的逻辑如下:

  • 如果指定了巡检配置文件的路径,那么将会从文件中加载配置。 如果加载失败,检查运行器也将失败。

  • 如果指定了检查配置文件的名称,系统将在项目的共享配置文件中进行搜索。 如果没有这样的配置文件,检查运行器将会失败。

  • 如果既未指定名称也未指定路径,则使用项目的默认配置文件。

选项

描述

巡查配置文件路径

使用此文本字段来指定相对于项目根目录的检查配置文件的路径。 仅当您不想使用在 "Inspections profile name" 中指定的共享项目配置文件时,才使用此字段。

检查配置文件名称

输入所需共享项目配置文件的名称。 如果该字段留空且未指定配置文件路径,将使用默认项目配置文件。

包含 / 排除模式:

可选,指定以限制运行检查的源范围。

包含/排除模式是换行符分隔的规则集,形式如下:

[+:|-:]pattern

其中,模式必须满足以下规则:

  • 必须以 *** 结束(这实际上只限制了模式到目录级别,它们不支持文件级别的模式);

  • 对模块的引用可以包含为 [<IDEA_module_name>]/<path_within_module>。 如果您已经配置了一个 Maven 项目,您可以使用 Maven 模块的 artifactId 作为 <IDEA_module_name>

  • 配置的路径被视为 IDEA 项目模块内容根目录中的相对路径。 也就是说,路径应相对于模块的根目录。

关于模式处理的一些注解:

  • 排除具有优先于包含的优先级

  • 如果指定了包含模式,只有匹配这些模式的目录将被包含,所有其他目录将被排除

  • 包含模式具有特殊行为(由于底层限制):它包括指定的目录和位于指定目录上方的所有文件夹中直接存放的所有文件。

示例:

+:testData/tables/** -:testData/** -:testdata/** -:[testData]/**

为了确保 Maven 检查运行时使用正确的 Java 作为项目 JDK ,请定义 env.JAVA_HOME 配置参数,指向将被用作项目 JDK 的 JDK。

在 IntelliJ IDEA 和 TeamCity 检查构建中获取相同的结果

IntelliJ IDEA 和 TeamCity Java 代码检查构建报告的代码审查结果取决于许多因素。 您需要确保 IntelliJ IDEA 和构建中的设置相同,以获得相同的报告。 相关的设置包括:

  • inspections profile在 IntelliJ IDEA 和 TeamCity 构建中使用;

  • 环境特定的项目依赖项(未在版本控制中的文件等);

  • IDE 级别的设置,例如定义的 SDKs 、路径变量等等;

  • 生成的文件:如果在 IntelliJ IDEA 中处理项目时存在,那么应在 TeamCity 代理中出现;

  • IntelliJ IDEA 版本。 建议使用与 TeamCity 构建中使用的相同的 IntelliJ IDEA 版本。 版本信息已记录在 Inspections 构建日志中;

  • 该项目所依赖的 IntelliJ IDEA 插件的设置和版本。

最后修改日期: 16日 7月 2024年