Не может быть проиндексирован дважды - testSourceDirectory и sourceDirectory одинаковы
Я создал тест производительности как подмодуль maven для моего основного модуля. Все тестовые классы написаны в src /main/ java, а не в src /test/ java
Я могу упаковать проект в jar и запустить его для проверки производительности моего проекта.
Я хотел казнить mvn test
, За mvn test
на работу я должен был <testSourceDirectory>
значение установлено. Так как в этом случае у меня есть мой код в src / main / java, я установил это:
<testSourceDirectory>src/main/java</testSourceDirectory>
Сейчас mvn test
работает.
Но проблема в том, что сборка сонара завершается с ошибкой: can't be indexed twice
, Что очевидно для моего пом testSourceDirectory
а также sourceDirectory
такие же.
[ERROR] Failed to execute goal
org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli)
on project Blah: File [relative=XYZ.java, abs=/Path/XYZ.java] can't be indexed twice.
Please check that inclusion/exclusion patterns produce
disjoint sets for main and test files ->
Как исправить эту проблему?
2 ответа
Я столкнулся с той же проблемой. Наконец, решил это с помощью следующей документации:
https://github.com/SonarOpenCommunity/sonar-cxx/wiki/FAQ
Q: ОШИБКА: Причина: файл [...] не может быть проиндексирован дважды.
A: В случае ошибки ниже, вы должны проверить свои свойства исключения / включения. Убедитесь, что шаблоны включения / исключения создают несвязанные наборы для исходных и тестовых файлов.
ОШИБКА: Причина: файл [...] не может быть проиндексирован дважды. Убедитесь, что шаблоны включения / исключения создают несвязанные наборы для основных и тестовых файлов. Пример может выглядеть следующим образом:
sonar.sources=. sonar.tests=. sonar.test.inclusions=**/*Test*/** sonar.exclusions=**/*Test*/**
Это не стандартное использование Maven, но вы можете легко исправить анализ SonarQube, используя исключения. sonar.exclusion =src/main/java/** или sonar.test.exclusion =src/main/java/**
в зависимости от того, хотите ли вы, чтобы ваши исходные файлы рассматривались как тесты или основные файлы.
Но правильным способом Maven было бы поместить ваши тесты в src/test/java и проверить их: https://maven.apache.org/guides/mini/guide-attached-tests.html
Если проект не соответствует структуре каталогов Maven по умолчанию, то в pom проекта вы можете явно указать, где находится часть исходного кода и часть тестов:
<properties>
<sonar.sources>src/main/foo</sonar.sources>
<sonar.tests>src/test/bar</sonar.tests>
</properties>
Я видел это
can't be indexed twice
ошибка при запуске
sonarqube
Задача Gradle в проекте Android. Проблема, связанная с файлами, хранящимися в
app/src/debug/assets
.
Я пробовал установить
sonar.sources
и
sonar.tests
свойства использовать несвязанные наборы, но мне не удалось устранить ошибку.
Чтобы исправить ошибку, я изменил:
property "sonar.coverage.exclusions", "**/assets/**, ..."
кому:
property "sonar.exclusions", "**/assets/**, ..."
чтобы полностью игнорировать каталог /assets/.