Czym jest "module-info.java"?

Czym jest "module-info.java"?
T1
T1
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:14
0

Witam!
W Eclipse IDE przy tworzeniu nowego projektu Java, jest komunikat z zapytaniem, czy utworzyć plik "module-info.java": screenshot-20210505130928.png
Co to za plik? Zawiera jakieś informacje? Kiedy się go stosuje?

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

Nie rób tego. Używaj mavena albo gradle bo to de facto standard. One mają swoją własną strukturę i odpowiednie pliki konfiguracyjne (pom.xml albo build.gradle). Odradzam też eclipse...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 2x, ostatnio: Shalom
T1
T1
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:14
0

Czyli Eclipse tworzy taki odpowiednik pliku pom.xml w Maven?

Odradzam też eclipse...

Dobra to jednak przesiadam się na NetBeans 😊
Dziękuję za odpowiedź!

KamilAdam
Czemu nie intellij? Wersja community jest darmowa
Shalom
To netbeans jeszcze żyje? o_O Widziałem go ostatni raz na studiach z 10 lat temu i już wtedy nikt go nie uzywał i generalnie był uważany raczej za martwy projekt.
99xmarcin
Żyje ale wersja od Apache Fundation jest bardzo niestabilna :( +1 IntelliJ Community, za darmochę i wszystko działa.
T1
Tomasz1092
@KamilAdam: To żart, ale mam wszystkie trzy na komputerze.
99xmarcin
  • Rejestracja:około 5 lat
  • Ostatnio:6 miesięcy
  • Postów:2420
2

Jeżeli używasz Javy 9+ to możesz skorzystać z nowego systemu modułów który ma zastąpić OSGi. module-info to cześć tego systemu, tego pliku używasz do deklaracji bieżącego moduło, jego zależność oraz tego co on eksportuje.

Po co to? W praktyce po to żeby móc jlink'iem i potem jpackage'em wygenerować sobie obraz aplikacji wraz z wbudowanym JRE i instalatorami (MSI, DEB, DMG). Czytaj bardzo przydatne jak piszesz w JavaFX.
Po co to? W dużych projektach żeby mieć większą kontrolę na architekturą i zależnościami poszczególnych modułów.

W tej chwili klepę małą apkę w JavaFX i tam używam modułów, możesz podjerzeć: https://github.com/marcin-chwedczuk/javafx-validation-demo.

Czy to potrzebne zwykłemu programiście? NIE. W tej chwili użycie modułów sprawia dużo problemów np. z unit testami. Jest to też ortogonalna struktura do Maven'a/Gradle'a więc trzeba wiele rzeczy pisać po 2 razy np. dependency w maven'ie i jeszcze raz requires w module-info.


Holy sh*t, with every month serenityos.org gets better & better...
edytowany 2x, ostatnio: 99xmarcin

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.