Interface ProblemGroups


@Incubating public interface ProblemGroups
The problem groups: the predefined hierarchy, and the entry point for creating sub-groups below it.

Problems are organized in a fixed hierarchy of root groups, each with predefined sub-groups. Producers place a problem in the most specific predefined group matching the activity the problem is about, or create their own sub-group below a predefined group when none matches. Group names describe what a problem is about, not where or when it happened.

To pick a group:

  • Find the root group matching the activity (for example getCompilation() for compiler problems).
  • Find the matching predefined sub-group and report the problem there, for example problems.getGroups().getCompilation().getJava().problemId("Unused import").
  • If no predefined sub-group matches, create one with RootProblemGroup.group(String), for example problems.getGroups().getTransformation().group("KMP").problemId("..."), or use the Undefined sub-group.
  • If no root group matches, create a sub-group below getOthers(), or use its Undefined sub-group.
If several groups match, pick the one closest to the context of the producer.

Group names are case-sensitive. Creating a group with the exact name of a predefined sibling returns the predefined group; any other name creates a new group. The name Undefined is reserved for the synthetic Undefined groups.

Not intended for implementation outside of Gradle. New members may be added in future versions.

The hierarchy and the descriptions below are also listed in the "Predefined problem groups" section of the user guide (reporting_problems.adoc); update that table whenever a predefined group or a description changes.

Since:
9.9.0
See Also:
  • Method Details

    • getGradle

      GradleProblemGroup getGradle()
      The Gradle root group.

      Initialization, configuration, and execution of the Gradle runtime, integration of built-in and third-party plugins with Gradle.

      Since:
      9.9.0
    • getDependencies

      DependenciesProblemGroup getDependencies()
      The Dependencies root group.

      Declaration, resolution, locking, and verification of dependencies required by projects or the Gradle runtime.

      Since:
      9.9.0
    • getTransformation

      TransformationProblemGroup getTransformation()
      The Transformation root group.

      Generation or manipulation of code, binaries, or resources before running or packaging.

      Since:
      9.9.0
    • getCompilation

      CompilationProblemGroup getCompilation()
      The Compilation root group.

      Code compilation, including the compiler's configuration, compiler invocation, or compiler plugins.

      Since:
      9.9.0
    • getExternalProcesses

      ExternalProcessesProblemGroup getExternalProcesses()
      The External Processes root group.

      External process invocations of compiled applications, native tools, and other runnable artifacts.

      Since:
      9.9.0
    • getPackaging

      PackagingProblemGroup getPackaging()
      The Packaging root group.

      Assembling products into various runnable and deployable forms, including creating binaries, archives, installers, or container images, and signing them.

      Since:
      9.9.0
    • getVerification

      VerificationProblemGroup getVerification()
      The Verification root group.

      Verification of software correctness, quality, and compliance through testing, static analysis, code coverage, linting, and other verification mechanisms that ensure the software meets specified requirements and standards, including setup and configuration of required tools and frameworks.

      Since:
      9.9.0
    • getDocumentation

      DocumentationProblemGroup getDocumentation()
      The Documentation root group.

      Production of documentation of any form, including API docs, manuals, or websites.

      Since:
      9.9.0
    • getProvisioning

      ProvisioningProblemGroup getProvisioning()
      The Provisioning root group.

      Making resources available for use and managing them, including tools and toolchains, services, or infrastructure.

      Since:
      9.9.0
    • getDelivery

      DeliveryProblemGroup getDelivery()
      The Delivery root group.

      Making products available to users, including publishing software components, deploying applications, or uploading documentation.

      Since:
      9.9.0
    • getOthers

      OthersProblemGroup getOthers()
      The Others root group.

      Problems that do not fit in any other group.

      Since:
      9.9.0