O ile wiem, można filtrować tylko na poziomie pakietu. Jednak Javadoc jest generowany tylko dla typów publicznych i chronionych. Jeśli typy mają zasięg domyślny lub prywatny, nie będą dla nich generowane javadoc. Ustawienie ich na domyślne oznacza, że są one nadal widoczne dla innych typów w pakiecie. Jeśli nie chcesz, aby javadoc, prawdopodobnie nie chcesz, aby ludzie używali tych typów, więc jest to prawdopodobnie dobry zakres, aby mimo wszystko.
Konfiguracja excludePackageNames zezwala na stosowanie symboli wieloznacznych. Dopóki masz konwencję nazw pakietów, która pozwala na to, możesz wykluczyć większość pakietów.
Powiedz, że masz te pakiety.
com.foo
com.foo.api
com.foo.internal
com.foo.internal.core
com.foo.internal.util
com.foo.internal.ui
com.foo.ui
i chcesz tylko wystawiać Foo foo.api i foo.ui, ten wzór będzie działać:
<excludePackageNames>com.foo.internal.*:com.foo.bob</excludePackageNames>
Można alternatywnie poruszać typy naruszające na oddzielne pakiety, ale nie jest to dobry powód, aby to zrobić.
Na czym polega problem z generowaniem javadoc dla tych typów?
Uwaga RCross "odpowiedź poniżej. Jest to dokładna poprawka do żądanego OP, aczkolwiek dodana w terminie dużo późniejszym niż zaakceptowana odpowiedź. –
Tak, możliwość zrobienia tego została dodana do wtyczki maven-javadoc we wrześniu 2012 roku, kilka dobrych lat po zaakceptowaniu zaakceptowanej odpowiedzi! – RCross