Qodana 2023.1 Help

Troubleshooting

This section contains information that can help you troubleshoot common problems.

List of Docker image paths

Path

Description

/data/project

Root directory of the project to be analyzed

/data/results

Directory to store the analysis results

/opt/idea

Directory containing the IDE distribution

/root/.config/idea

Directory where the IDE contains configuration

/data/profile.xml

Used if a profile was not previously configured either via the CLI or the qodana.yaml file.

For Maven and Gradle projects, Qodana uses the following directories to access third-party libraries:

Path

Description

/data/cache/.m2

Maven project dependencies

/data/cache/gradle

Gradle project dependencies

Mounting these directories saves Qodana from downloading all dependencies again while using these linters:

List of files for investigating Qodana behavior

There are several options for examining Qodana behavior using the /data/results directory:

  • The /data/results/projectStructure/Modules.json file lists all modules detected by Qodana. It should be identical to the list that you expect to see while opening the project in IDEA. If it is not the case, check pom.xml for Maven or the build.gradle file for Gradle configurations.

  • In the /data/results/ directory, each inspection that detected a possible problem creates its own file named ID.json, where ID is the inspection name that can be used in qodana.yaml for including or excluding inspections. You can find the complete list of inspection IDs in the /data/results/.descriptions.json file using the /groups/*/inspections/*/shortName pattern.

  • In /data/results/log/idea.log, you can investigate suspicious warnings.

How to inspect a specific project directory within a repository

A typical project structure can have a directory structure similar to this:

repo/ .git/ project/ ...

Here, the repo/.git directory contains information that should be accessible by Qodana, and the repo/project directory contains the project that needs to be inspected by Qodana.

In this case, you can mount the repo root directory using the -v Docker option, and tell Qodana to only scan the repo/project directory using the --project-dir= Qodana option:

docker run \ -v repo/:/data/project/ \ jetbrains/qodana-<linter> \ --project-dir=/data/project/project/

Error messages about missing files, packages, modules, or classes

During inspections, Qodana may report about missing files, packages, modules, or classes. In this case, you need to have your project prepared for code inspection. For example, you can create a script and configure Qodana for running it as shown in the Prepare your project section.

Last modified: 01 February 2023