qodana-cli
π§ JetBrains Qodanaβs official command line tool
νμΌ νμκΈ°
μ΅μ’ λ²μ λ€μ΄λ‘λ (.zip)- devcontainer.json
- Dockerfile
- action.yaml
- action.yaml
- action.yaml
- action.yaml
- action.yaml
- config.yml
- release-matrix.py
- verifyChecksums.js
- base.yml
- ci.yml
- devcontainer.yml
- docker-ci.yml
- docs.yml
- feed.yml
- lint.yml
- post-release.yml
- stale.yml
- test.yaml
- CODE_OF_CONDUCT.md
- CODEOWNERS
- dependabot.yml
- pull_request_template.md
- qodana.sarif.json
- renovate.json
- SECURITY.md
- codeStyleConfig.xml
- Project.xml
- JetBrains.xml
- profiles_settings.xml
- Run --ide QDGO .run.xml
- Artifacts.kt
- Cli.kt
- GoReleaser.kt
- Secrets.kt
- pom.xml
- settings.kts
- process-cltzip.go
- Program.cs
- qodana.yaml
- TestLinterRun.csproj
- .gitignore
- cdnet_test.go
- fingerprints.go
- fingerprints_fixture_test.go
- fingerprints_test.go
- init.go
- main.go
- options.go
- options_test.go
- run.go
- run_test.go
- prepare-clang-tidy-binary.go
- .gitignore
- CMakeLists.txt
- main.cpp
- qodana.yaml
- .clang-tidy
- .gitignore
- CMakeLists.txt
- main.cpp
- qodana.yaml
- .gitignore
- clang.go
- clang_test.go
- clang_tidy_darwin_amd64.go
- clang_tidy_darwin_arm64.go
- clang_tidy_linux_amd64.go
- clang_tidy_linux_arm64.go
- clang_tidy_windows_amd64.go
- clang_tidy_windows_arm64.go
- cmake.go
- cmake_test.go
- config.go
- config_test.go
- init.go
- main.go
- run.go
- run_test.go
- sarif.go
- main.go
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- intellij.Dockerfile.j2
- thirdparty.Dockerfile.j2
- cpp-bookworm.Dockerfile
- cpp-community-bookworm.Dockerfile
- cpp-community.Dockerfile
- cpp.Dockerfile
- docker-bake.hcl
- dotnet-community.Dockerfile
- dotnet.Dockerfile
- go.Dockerfile
- js.Dockerfile
- jvm-community.Dockerfile
- jvm.Dockerfile
- php.Dockerfile
- poly.Dockerfile
- python-community.Dockerfile
- python.Dockerfile
- ruby.Dockerfile
- rust.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- .dockerignore
- disabled_plugins.txt
- included_plugins.txt
- internal.Dockerfile
- public.json
- qodana-cpp.releases.json
- qodana-dotnet.releases.json
- qodana-go.releases.json
- qodana-js.releases.json
- qodana-jvm-community.releases.json
- qodana-jvm.releases.json
- qodana-php.releases.json
- qodana-python-community.releases.json
- qodana-python.releases.json
- qodana-ruby.releases.json
- qodana-rust.releases.json
- bots.go
- cloud.go
- cloud_test.go
- endpoints.go
- endpoints_test.go
- license.go
- license_test.go
- report.go
- versions.go
- pom.xml
- cloc.go
- cmd_test.go
- contributors.go
- init.go
- pull.go
- root.go
- scan.go
- send.go
- show.go
- view.go
- context.go
- context_changes.go
- context_test.go
- create_context.go
- env_test.go
- properties.go
- exitcodes.go
- jdk.table.xml
- cached.xml
- installers.go
- installers_test.go
- license.go
- license_test.go
- prepare.go
- prepare_test.go
- releases.go
- xml.go
- xml_test.go
- container.go
- container_test.go
- contributors.go
- contributors_mailmap_test.go
- contributors_test.go
- core_test.go
- ide.go
- ide_test.go
- incremental_analysis.go
- output.go
- properties.go
- run_scenario_test.go
- system.go
- system_test.go
- algorithm.go
- algorithm_test.go
- archive.go
- archive_test.go
- exec.go
- exec_test.go
- exec_unix.go
- exec_windows.go
- flock_test.go
- flock_unix.go
- flock_windows.go
- compose.yaml
- Dockerfile
- atomic.go
- atomic_test.go
- canonical_execonly_test.go
- canonical_test.go
- canonical_unix.go
- canonical_windows.go
- find_entry_darwin.go
- find_entry_darwin_test.go
- find_entry_linux.go
- find_entry_linux_test.go
- find_entry_other.go
- find_entry_readdir.go
- find_entry_windows.go
- find_entry_windows_test.go
- fs.go
- fs_test.go
- relativity.go
- relativity_test.go
- hash.go
- hash_test.go
- join.go
- join_test.go
- shlex.go
- split.go
- split_test.go
- str.go
- str_test.go
- scan_options.go
- scan_options_test.go
- ignore.cpp
- Dockerfile
- test.c
- test.go
- test.sh
- analyzer_cli_options_test.go
- analyzer_options_test.go
- analyzer_yaml_options_test.go
- common.go
- common_test.go
- compute.go
- configurator.go
- context.go
- native.go
- native_test.go
- recognize_languages_test.go
- a-profile.yaml
- qodana.yaml
- qodana-global-configurations.yaml
- qodana-global-configurations.yaml
- inner.yaml
- qodana.yaml
- a-profile.yaml
- inner.yaml
- qodana.yaml
- qodana.yaml
- .gitkeep
- qodana.yaml
- qodana.yaml
- inner.yaml
- qodana.yaml
- effective.qodana.yaml
- qodana-config.json
- qodana.yaml
- a-profile.yaml
- qodana.yaml
- qodana-global-configurations.yaml
- b-profile.yaml
- qodana.yaml
- b-profile.yaml
- effective.qodana.yaml
- qodana-config.json
- qodana.yaml
- .gitkeep
- a-profile.yaml
- qodana.yaml
- qodana-global-configurations.yaml
- a-profile.yaml
- effective.qodana.yaml
- qodana-config.json
- a-profile.yaml
- b-profile.yaml
- inner.yaml
- qodana.yaml
- a-profile.yaml
- effective.qodana.yaml
- qodana-config.json
- qodana.yaml
- config.go
- config_test.go
- git.go
- git_changes.go
- git_changes_test.go
- git_legacy.go
- git_test.go
- logmanager.go
- testutil.go
- cli.go
- output.go
- output_test.go
- nuget.go
- nuget_test.go
- init.go
- init_posix.go
- init_windows.go
- analyzers.go
- intelllij_linters.go
- product.go
- product_info.go
- product_test.go
- testing.go
- container.go
- container_test.go
- qdenv.go
- qdenv_test.go
- yaml.go
- yaml_test.go
- qodana.sarif.json
- qodana.sarif.json
- qodana-short.sarif.json
- qodana.sarif.json
- merged.qodana.sarif.json
- compute.go
- context.go
- context_test.go
- token_loader.go
- token_loader_test.go
- utils.go
- utils_test.go
- version.go
- baseline.go
- deviceid.go
- eap.go
- eap_test.go
- embed.go
- embed_test.go
- ext_bitbucket.go
- ext_gitlab.go
- ext_test.go
- files.go
- options_test.go
- permissions.go
- publisher.go
- publisher_test.go
- run.go
- run_test.go
- sarif.go
- sarif_test.go
- sarifVersioning.go
- sarifVersioning_test.go
- statistics.go
- third_party_linter.go
- third_party_scan_cmd.go
- thresholds.go
- thresholds_test.go
- schema.go
- schema_test.go
- dockertest.go
- main.go
- mockexe.go
- mockexe_test.go
- protocol.go
- server.go
- testing.go
- mocklinter.go
- mocklinter_test.go
- needs.go
- needs_test.go
- build-qodana-jbr.go
- download-libs.go
- pom.xml
- libs.go
- qodana_jbr.go
- qodana_jbr_darwin_amd64.go
- qodana_jbr_darwin_arm64.go
- qodana_jbr_linux_amd64.go
- qodana_jbr_linux_arm64.go
- qodana_jbr_test.go
- qodana_jbr_windows_amd64.go
- qodana_jbr_windows_arm64.go
- dockerfiles.py
- dockerfiles_test.py
- download-deps.go
- generate-bots.go
- generate-docs.go
- generate-recursive.go
- sign.go
- validate-dockerfiles-urls.py
- validate_dockerfiles_base.py
- validate_dockerfiles_base_test.py
- idea.log
- qodana-short.sarif.json
- qodana.sarif-baseline.json
- qodana.sarif.json
- docker-compose.test.yml
- mock_server.py
- 3rd_party_linter_jbr_integration_test.go
- init.go
- main.go
- run.go
- .env.example
- .gitattributes
- .gitignore
- .golangci.yml
- .goreleaser.yaml
- .mailmap
- .pre-commit-config.yaml
- bots.json
- CONTRIBUTING.md
- go.mod
- go.sum
- install
- LICENSE
- qodana.yml
- README.md
- run
- sudo
- tools.go
# μ€μΉ κ°μ΄λ
git clone https://github.com/JetBrains/qodana-cli
κΉνλΈμμ νλ‘μ νΈ μ½λ μ 체λ₯Ό λ΄ μ»΄ν¨ν°λ‘ λ΄λ €λ°μ΅λλ€.
cd qodana-cli
λ°©κΈ λ΄λ €λ°μ νλ‘μ νΈ ν΄λ μμΌλ‘ μ΄λν©λλ€.
2. 곡μ μ€μΉ μ€ν¬λ¦½νΈ
μ¬μ μΆμ²- Homebrew macOS/Linuxμ© ν¨ν€μ§ λ§€λμ μ λλ€.
- Chocolatey Windowsμ© ν¨ν€μ§ λ§€λμ μ λλ€.
- Scoop Windowsμ© ν¨ν€μ§ λ§€λμ μ λλ€.
brew install jetbrains/utils/qodana
Homebrewλ‘ μ΄λ―Έ λΉλλ ν¨ν€μ§λ₯Ό λ°λ‘ μ€μΉν©λλ€. μμ€ λΉλκ° νμ μμ΅λλ€.
curl -fsSL https://jb.gg/qodana-cli/install | bash
곡μ μ€μΉ μ€ν¬λ¦½νΈλ₯Ό λ€μ΄λ‘λν΄μ λ°λ‘ μ€νν©λλ€. μ΄ ν μ€λ‘ νμν κ² μλμΌλ‘ μ€μΉλ©λλ€.
choco install qodana
Chocolateyλ‘ λ°λ‘ μ€μΉν©λλ€ (Windows).
scoop install qodana
ScoopμΌλ‘ λ°λ‘ μ€μΉν©λλ€ (Windows).
μ΄ λ ν¬μ READMEμ μ ν μ€μ λͺ λ Ήμ΄λ₯Ό κ·Έλλ‘ κ°μ Έμμ΅λλ€.
3. Docker
μ¬μ- Git GitHubμμ νλ‘μ νΈ μ½λλ₯Ό λ΄λ €λ°μΌλ €λ©΄ νμν©λλ€.
- Docker Desktop 컨ν μ΄λλ₯Ό λΉλνκ³ μ€ννλ €λ©΄ νμν©λλ€. μ€μΉ ν μ€νν΄μ λ°±κ·ΈλΌμ΄λμ μΌλμΈμ.
!Legacy note!: Until version 2025.2 this parameter was used to define a docker image. This behavior is deprecated but supported for backward compatibility. Please use parameters --linter and --within-docker=true or --image instead.
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
--within-docker string Defines if analysis is performed within a docker container or not.
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
Set to 'false' for performing analysis in native mode. Set to 'true' for performing analysis within a docker container.
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
Sets --within-docker=true. Sets --linter to the one preinstalled within the image.
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
Available images are: jetbrains/qodana-jvm:2025.3-eap, jetbrains/qodana-dotnet:2025.3-eap, etc. Full list of images is available at https://hub.docker.com/u/jetbrains?search=qodana .
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
μ΄ λ ν¬μ READMEμ μ ν μ€μ λͺ λ Ήμ΄λ₯Ό κ·Έλλ‘ κ°μ Έμμ΅λλ€.
4. CMake
보ν΅cd clang/testdata/TestLinterRun
μ΄ νλ‘μ νΈμ κ΄λ ¨ νμΌμ΄ νμ ν΄λ μμ μμ΄μ, λ¨Όμ κ·Έ ν΄λλ‘ μ΄λν©λλ€.
mkdir build && cd build
λΉλ κ²°κ³Όλ¬Όμ λ΄μ ν΄λλ₯Ό λ§λ€κ³ κ·Έ μμΌλ‘ μ΄λν©λλ€.
cmake ..
μμ€μ½λλ₯Ό λΆμν΄ λΉλ μ€μ νμΌμ μμ±ν©λλ€ (build ν΄λ μμμ μ€νν΄μΌ ν¨).
make
μμ±λ λΉλ μ€μ μ λ°νμΌλ‘ μ€μ μ»΄νμΌμ μ§νν΄ μ€ν νμΌμ λ§λλλ€.
5. .NET
보ν΅Available values: qodana-jvm-community, qodana-jvm, qodana-jvm-android, qodana-android, qodana-php, qodana-python-community, qodana-python, qodana-js, qodana-cdnet, qodana-dotnet, qodana-ruby, qodana-cpp, qodana-go, qodana-rust, qodana-clang, qodana-poly.
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
Available images are: jetbrains/qodana-jvm:2025.3-eap, jetbrains/qodana-dotnet:2025.3-eap, etc. Full list of images is available at https://hub.docker.com/u/jetbrains?search=qodana .
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
--no-statistics [qodana-clang/qodana-dotnet] Disable sending anonymous statistics
μ΄ λͺ λ Ήμ΄λ₯Ό ν°λ―Έλμ κ·Έλλ‘ μ λ ₯ν΄ μ€ννμΈμ.
μ΄ λ ν¬μ READMEμ μ ν μ€μ λͺ λ Ήμ΄λ₯Ό κ·Έλλ‘ κ°μ Έμμ΅λλ€.
6. Maven (Java)
보ν΅- Git GitHubμμ νλ‘μ νΈ μ½λλ₯Ό λ΄λ €λ°μΌλ €λ©΄ νμν©λλ€.
- JDK (Java) Java νλ‘μ νΈλ₯Ό λΉλ/μ€ννλ €λ©΄ νμν©λλ€.
- Maven mvn λͺ λ Ήμ΄λ₯Ό μ°κΈ° μν λΉλ λꡬμ λλ€.
cd .teamcity
μ΄ νλ‘μ νΈμ κ΄λ ¨ νμΌμ΄ νμ ν΄λ μμ μμ΄μ, λ¨Όμ κ·Έ ν΄λλ‘ μ΄λν©λλ€.
mvn clean install
MavenμΌλ‘ μμ‘΄μ± μ€μΉμ λΉλλ₯Ό μ§νν©λλ€.
7. Go
보ν΅go build ./...
Go νλ‘κ·Έλ¨μ μ»΄νμΌν΄ μ€ν νμΌμ λ§λλλ€.
go run .
λ°λ‘ λΉλνμ§ μκ³ λ°λ‘ Go νλ‘κ·Έλ¨μ μ€νν©λλ€.
