2014-12-28 1 views
4

У меня есть пакеты, как это:Обеспечение классов Java не импортируют из определенных пакетов

com.example.pure 
com.example.pure.internal 
com.example.other 

Я хочу, чтобы гарантировать, что классы в com.example.pure пакете нет никаких зависимостей от классов в com.example.pure.internal или com.example.other пакетов.

Очевидно, что я могу просматривать каждый файл вручную и следить за импортом, но я бы хотел его автоматизировать. Я мог бы написать код для этого, но похоже, что это может быть что-то еще, что кто-то еще решил.

Я использую Eclipse, поэтому плагин Eclipse, который я мог бы настроить для обеспечения направления зависимостей, был бы абсолютно идеальным, но утилита командной строки или плагин Gradle тоже были бы хороши.

ответ

2

в Apache Lucene они используют this handy tool called fobidden-apis, чтобы проверить, что некоторые APIs являются не используется. Это задача Ant, поэтому вы можете легко это назвать изнутри eclipse.

0

вы можете скомпилировать com.example.pure отдельно в одиночку, если она успешно компилируется, то это не зависит от какого-либо другого пакета:

-cp path or -classpath path 

или

javac -d bin -cp bin src\...\someclass.java 
+0

Это действительно зависит от других пакетов, о которых я не упоминал, но это, безусловно, один из способов, которым я мог бы пойти. Спасибо за идею. –

+0

Добро пожаловать, вы можете скомпилировать его с другим пакетом и без ** com.example.pure.internal ** или ** com.example.other ** пакетов, чтобы узнать, зависит ли это от них. во всяком случае, я надеюсь, что проблема решит. – jfun