Наша программа использует собственные библиотеки через JNA, некоторые из этих вызовов проходят через com.sun.jna.Pointer и com.sun.jna.ptr.PointerByReference.
При анализе такого кода с помощью сонара он дает "основной запах кода" squid:S1191 - Classes from "sun.*" packages should not be used.
В документации Sonar конкретно упоминается import com.sun.jna.Native; как несовместимый код, но не предлагаются альтернативы.
Судя по поиску в Google squid:1191, многие пользователи считают это правило слишком строгим (не говоря уже о том, что вы не можете аннотировать импорт, чтобы подавить предупреждение).
Насколько я понимаю, это правило зародилось в Java часто задаваемые вопросы, который также не предоставляет никаких альтернативных API для JNA.
Должен ли я просто игнорировать проблему (или найти обходной путь для ее подавления), или мы действительно здесь что-то делаем не так?
Так что на самом деле в FAQ по Java говорится: «Не полагайтесь на внутренние компоненты». Вы не обращаетесь к внутренним компонентам Java, а просто взаимодействуете с зависимостью, пакет которой начинается с «com.sun.». Я бы подавил предупреждение.
Спасибо, я постараюсь найти способ подавить это
Вы можете поставить комментарий после первого импорта com.sun.jna.*: // NOSONAR (при желании вы можете добавить сквид: S1191)




Я считаю, что этот вопрос и ответ соответствует тому, что вы ищете: Классы правил SonarQube из пакетов "com.sun. *" И "sun. *" Не должны использоваться, даже если пакет другой.