← Назад к обзору

Конфигурация

Поведение инструмента можно настроить через файл конфигурации maven_check_versions.yml. Доступные настройки:

  • Проверка SSL: Включение или отключение проверки SSL при HTTP-запросах.
  • Настройки кэша: Управление временем жизни и поведением кэша.
  • Настройки репозиториев: Задание базовых URL, аутентификации и путей для репозиториев.
  • Настройки логирования: Уровни и пути для логов.
  • Проверка уязвимостей: Настройка проверки зависимостей на известные уязвимости.

Настройки кэша

Инструмент поддерживает несколько бэкендов кэша:

  • JSON (по умолчанию): локальный JSON-файл.
  • Redis: сервер Redis.
  • Tarantool: сервер Tarantool.
  • Memcached: сервер Memcached.

Настройки проверки уязвимостей

Для включения проверки уязвимостей установите oss_index_enabled: true в разделе vulnerability конфигурационного файла. Инструмент использует сервис OSS Index для обнаружения известных уязвимостей. Понадобятся имя пользователя и токен API, которые можно получить после регистрации на https://ossindex.sonatype.org/.

Пример конфигурации:

  1. Проверять все зависимости через OSS Index
  2. Останавливать сборку, если CVSS ≥ 7.0
  3. Пропускать тестовые компоненты
vulnerability:
  oss_index_enabled: true
  oss_index_url: "https://ossindex.sonatype.org/api/v3/component-report"
  oss_index_user: "OSS_INDEX_USER"
  oss_index_token: "OSS_INDEX_TOKEN"
  oss_index_batch_size: 128
  oss_index_keep_safe: false
  fail_score: 7
  skip_no_versions: false
  skip_checks: [ "junit:junit:*" ]
  cache_backend: "json"

Файл конфигурации

base:
  cache_off: false
  cache_time: 600
  cache_backend: "json"

  # Настройки Redis кэша
  redis_host: "localhost"
  redis_port: 6379
  redis_key: "maven_check_versions_artifacts"
  redis_user: null
  redis_password: null

  # Настройки Tarantool кэша
  tarantool_host: "localhost"
  tarantool_port: 3301
  tarantool_space: "maven_check_versions_artifacts"
  tarantool_user: null
  tarantool_password: null

  # Настройки Memcached кэша
  memcached_host: "localhost"
  memcached_port: 11211
  memcached_key: "maven_check_versions_artifacts"

  fail_mode: false
  fail_major: 0
  fail_minor: 0

  search_plugins: false
  process_modules: false

  show_skip: false
  show_search: false

  empty_version: false
  show_invalid: false
  skip_current: true

  threading: true
  max_threads: 8

  user: "USER"
  password: "PASSWORD"

# Настройки проверки уязвимостей
vulnerability:
  oss_index_enabled: true
  oss_index_url: "https://ossindex.sonatype.org/api/v3/component-report"
  oss_index_user: "OSS_INDEX_USER"
  oss_index_token: "OSS_INDEX_TOKEN"
  oss_index_batch_size: 128
  oss_index_keep_safe: false

  fail_score: 0
  cve_reference: false
  skip_no_versions: false
  skip_checks: []

  cache_backend: "json"

  # Настройки Redis для проверки уязвимостей
  redis_host: "localhost"
  redis_port: 6379
  redis_key: "maven_check_versions_vulnerabilities"
  redis_user: null
  redis_password: null

  # Настройки Tarantool для проверки уязвимостей
  tarantool_host: "localhost"
  tarantool_port: 3301
  tarantool_space: "maven_check_versions_vulnerabilities"
  tarantool_user: null
  tarantool_password: null

  # Настройки Memcached для проверки уязвимостей
  memcached_host: "localhost"
  memcached_port: 11211
  memcached_key: "maven_check_versions_vulnerabilities"

# Настройки HTTP-доступа к POM
pom_http:
  auth: false
  user: "USER"
  password: "PASSWORD"

# Настройки urllib3
urllib3:
  warnings: true

# Настройки requests
requests:
  verify: true

# Список POM-файлов для обработки
pom_files:
  pom-name: "path/to/pom.xml"

# Конфигурации репозиториев
repositories:
  "Central (repo1.maven.org)": "repo1_maven"

# Настройки для repo1.maven
repo1_maven:
  base: "https://repo1.maven.org"
  path: "maven2"
  auth: false
  user: "USER"
  password: "PASSWORD"
  repo: "maven2"
  service_rest: false

Переменные окружения

Инструмент поддерживает переменные окружения для переопределения настроек или предоставления учетных данных. Формат: CV_<KEY> где <KEY> соответствует ключу конфигурации раздела base.

ПеременнаяОписаниеПример
CV_CACHE_OFFОтключает кэш при установке в true.true
CV_CACHE_TIMEВремя жизни кэша в секундах.3600
CV_FAIL_MODEВключает режим отказа при установке true.true
CV_FAIL_MAJORУстанавливает порог по основной версии.1
CV_FAIL_MINORУстанавливает порог по младшей версии.2
CV_SEARCH_PLUGINSВключает поиск плагинов при установке true.true
CV_PROCESS_MODULESВключает обработку модулей при установке true.true
CV_SHOW_SKIPЛогирует пропущенные зависимости при true.true
CV_SHOW_SEARCHЛогирует действия поиска при true.true
CV_EMPTY_VERSIONРазрешает пустые версии при true.true
CV_SHOW_INVALIDЛогирует некорректные зависимости при true.true
CV_THREADINGВключает многопоточность при true.true
CV_MAX_THREADSМаксимальное число потоков при многопоточности.8
CV_USERПользователь для аутентификации в репозиториях.my_username
CV_PASSWORDПароль для аутентификации в репозиториях.my_password

Другие разделы формируются как CV_<SECTION>_<KEY>.

Пример использования

export CV_CACHE_TIME=1800
maven_check_versions --pom_file path/to/pom.xml