Проблема Sonarqube не поднята для пользовательского правила в зависимости от анализа машиныJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема Sonarqube не поднята для пользовательского правила в зависимости от анализа машины

Сообщение Anonymous »

У нас есть проблема в анализе Sonarqube проектов Java, с пользовательским правилом, определенным в Java, которое не поднимает все проблемы на всех платформах, по -видимому, в зависимости от машины, из которой проводится анализ Maven Sonar. Это правило использует плагин Sonar, и, в частности, метод classtree.issubtypeof (classname) , чтобы проверить, имеет ли тип заданный класс в его иерархии.
В нашем Ci/ CD, а также на моей машине, некоторые классы, которые должны поднять проблему, никогда не делают (но не те же самые). На некоторых машинах коллеги все проблемы поднимаются правильно. В конкретном проекте CI/CD поднимает 1 проблему, на моей машине он поднимает 11 выпусков, а на моем коллеге это правильно поднимает 21 выпуск. Он воспроизводим, и поднятая проблема всегда одинакова. Есть некоторые предупреждения, подобные этим: < /p>

Код: Выделить всё

[DEBUG] Could not complete symbolic execution: reached limit of 16000 steps for method ...
< /code>
Но это не похоже на непосредственное связанное (и методы предупреждения, а не иерархия класса).
Мы не нашли никакой другой ошибки, Outofmemory или другой, В журналах.7.16.0.30901
9.5.0.56709
9.8.0.203
Локальные тесты выполняются с использованием контейнерных версий сонара (настроенные с нашими пользовательскими правилами и профилями качества), в отличие от CI/CD, который использует Sonarqube на сервере предпосылки, но, похоже, он, похоже, он Только зависит от машины, из-за чего анализ сделан. Еще один JDK (OpenJDK 11). Локально мы используем JDK 21 для анализа сонара (после компиляции), вызывая плагин напрямую: < /p>
mvn org.sonarsource.scanner.maven:sonar-maven-plugin::sonar -Dsonar.findbugs.enabled=false -Dsonar.host.url=http://localhost:9000 -Dsonar.login=... -Dsonar.projectKey=TEST -Dsonar.projectName=test
< /code>
(мы протестировали с различными версиями плагина, последним 3, а также 5). < /p>
У нас есть несколько модульных тестов в Проект пользовательского правила, который работает хорошо и обнаруживает проблемы, включая тесты на классах, скопированных из реального проекта, но проблема никогда не возникает в наших модульных тестах. и видно, что действительно, родительский класс в некоторых случаях не найден.
Например, на моей рабочей станции: < /p>
[INFO] Class has file import, testing if it is an ABAction: MyAction
[WARNING] Type ....MyAction
[WARNING] Type : MyAction
[WARNING] --> java.lang.Object
[INFO] Class is an not ABAction: MyAction
< /code>
и то же самое на рабочей станции моего коллеги, которая работает: < /p>
[INFO] Class has file import, testing if it is an ABAction: MyAction
[WARNING] Type : .... MyAction
[WARNING] Type : MyAction
[WARNING] --> ....AbstractABAction
[WARNING] --> a.b.c.ABAction
[WARNING] --> java.lang.Object
< /code>
В режиме отладки это то же самое: в тех случаях, когда он не работает, это похоже на то, что «привязка» в типе не показывает, что класс расширяет наш «абстрактный» , поэтому он не обнаруживает, что «ослабление» искал в иерархии.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... is-machine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»