Javowe moduły

0

Korzystanie z package-scope zaczęło być dla mnie troszkę uciążliwe, ponieważ nie umiem utworzyć hierarchii pakietów, gdy potrzebowałbym żeby klasy w jednym pakiecie były widoczne w obrębie wszystkich subpakietów danego pakietu (czasami nawet wewnątrz subpakietów-subpakietów itd). Znalazłem, że od Javy 9, zostały wprowadzone moduły które mogłyby rozwiązać moje problemy -w założeniu, wszystkie klasy publiczne wewnątrz modułu i udostępniany tylko jeden pakiet z fasadą i np jakimiś interfejsami . Więc postanowiłem wygenerować module-info.java i decydować którym modułom udostępnię pakiety. Problem pojawił się taki, że po wygenerowaniu pliku z modułami kompilator zaczął się rzucać (i słusznie), że np Springframeworkowe klasy/pakiety są niewidoczne. Czy jest możliwe modułowanie tak, żeby tylko te moduły które ja stworzę będą wymagały "udostępniania", a pakiety takie jak org.springframework, czy org.mindrot.jbcrypt były całkowicie publiczne? W senie nie module-public tylko samo public.

0

Nie jestem pewien czy dobrze zrozumiałem ale nie chodzi o to że musisz zaimportowac te modułu : requires org.springframework ?

0

Właśnie tak próbowałem, tylko dostaję błąd że org.springframework nie jest modułem i nie mogę go "użyć requires". Podobną sytuację mam z org.mindrot.
Edit: Przydałoby mi się to w tym, że wewnątrz całego modułu klasy bazodanowe (te których obiekty mam bezpośrednio persistowane w bazie danych) miałbym widoczne wewnątrz całego modułu. Nie musiałbym pakować wszystkiego do jednego pakietu, tylko mógłbym to jakoś popakować w pakiety. Zewnątrz modułu byłaby widoczna tylko klasę dto.

1 użytkowników online, w tym zalogowanych: 0, gości: 1