Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Как определить что произошел импорт класса?

#java #поиск_библиотек


Есть ли библиотеки для java позволяющие на этапе компиляции определить, что некий
класс импортируется там, где это не желательно? 

Как я это вижу:

@VisibleFor(some.packagee.name)
public class AlmostPublic {
    // ...
}


И теперь попытка импортировать класс AlmostPublic в любом месте за пределами пакета
some.packagee.name должна вызвать ошибку компиляции.
    


Ответы

Ответ 1



Если вы хотите следить за командой разработчиков, к которым у вас есть доступ, то вы можете скачать расширение для IntelliJ - Chekstyle-IDEA(вы так же можете скачать его для Maven). Суть такая: вы запускаете проверку, и Chekstyle показывает вам ошибки, т.е. где по "её" мнению код написан в неверном стиле(это по умолчанию). Но вы можете добавить туда собственные фильтры, например import .... Вы даже можете настроить IDEA так, что бы проверки пред компиляцией выполняла Chekstyle(т.е. точно так же, как у вас из-за ошибки не компилируется код, у вас он не будет компилироваться из-за импорта класса, если вы это все настроили). Если вы пишите (допустим) библиотеку, т.е. вы не сможете следить за разработкой программ, кот. используют ваш класс, то как уже писали, вы не можете запретить создание импортов на уровне компиляции. Тогда вы можете запретить создавать объекты своего класса, т.е. определить дефолтный конструктор как default(т.е., вообще без модификатора) - сделать его доступным только внутри пакета(package).

Ответ 2



Добавлю свои пять копеек Плагины к среде разработки это конечно все отлично, но, если вы пытаетесь построить рабочий процесс и хотите быть уверены что все ему следуют то это слегка не тот путь. Есть средства сборки , например Jenkins, у вас при сборке есть стадия, которая запускает SonarCube , который в свою очередь использует принятые у вас в команде проверки кода. Самое главное тут что дальше у вас есть так называемые quality gate, и build breaker , которые сломают сборку, если правила игры нарушены. И разработчик получает email сообщение что он не прав Как то так

Комментариев нет:

Отправить комментарий