2017-04-04 18 views
10

Parametr definiuje, między innymi, zależności modułu. Jeśli używam Mavena jako narzędzia do kompilacji, jest to zbyteczne, ponieważ pom.xml zawiera już te (i więcej) informacji. Na podstawie tego, czy Maven nie mógł wygenerować dla mnie module-info.java?Can Maven generuje deklarację modułu

+2

Nie sądzę, że może z jednego prostego powodu: w ramach pojedynczej zależności mogę już mieć wiele modułów Java (które same nie są zależne), więc w jaki sposób Maven może mieć te informacje? – john16384

+3

Deklaracja modułu nie jest nadmiarowa ... co jest odpowiednikiem "eksportu ..." w pliku pom? Ponadto 'wymaga java.sql' jak Maven powinien o tym wiedzieć? A co z nazwą modułu? Na podstawie tego, co powinno być odgadnięte? artefactId? Nie zadziała .... Polecam przeczytać listę DEV Maven o słowie kluczowym Jigsaw ... Poza tym, co z przechodnimi zależnościami? – khmarbaise

Odpowiedz

6

Można się spodziewać, że większość zależności to rzeczywiście wymagane moduły. Jednak wymagania mogą również wskazywać moduły JDK/JRE, które nie są określone w pom.xml. Więc tak, jeśli spojrzysz tylko na zależności, prawdopodobnie większość z nich może zostać przekształcona do wymaganego odwołania do modułu.

Ale deskryptor modułu zawiera znacznie więcej informacji, które są oparte na decyzjach podejmowanych przez programistę. Napisałem o tym an article, który szczegółowo opisuje, dlaczego nie jest możliwe pełne wygenerowanie tego pliku.

+2

, ale prawdopodobnie mógł wygenerować pewien rodzaj domyślnej lub minimalnej deklaracji modułu. Wszystkie dodatkowe informacje potrzebne (decyzje wydane przez programistę) mogą być dostarczone za pośrednictwem pom (konfiguracja w wtyczce). Dzięki temu pom pozostaje jedynym plikiem konfiguracyjnym do utrzymania ?! Istnieją również wtyczki, które generują pliki bnd, pliki manifestu lub pliki web.xml, które zawierają informacje podane wraz z pom. – dermoritz

+2

W rzeczywistości, 'jdeps' (w' jdk-9/bin') może generować początkowy deskryptor na podstawie skompilowanego kodu. Ale nie może stać się częścią cyklu życia, ponieważ musi być dostosowywany ręcznie. –

Powiązane problemy