21 Haziran 2018 Perşembe

module-info.java Dosyası

Giriş
Java 8'e kadar tüm java kodu rt.jar dosyasındaydı. Java 9'dan itibaren bu dosya 90'dan fazla parçaya bölündü. Bazı parçalar şöyle
java.base
java.xml
java.sql
java.desktop
java.httpserver
Dosya
Bu dosya derleme zamanında işe yarar. Çalışma zamanında halen modulleri java --add-module şeklinde belirtmek gerekir. İskeleti şöyledir.
module my.model.server {
  requires com.foo.bar;
  ...

}
Bu dosya iki yerde bulunabilir. Açıklaması şöyle.
There are two places where module-info.java can be located:

1. With all the other classes, in src/main/java
2. In a separate "source set," e.g. in src/main/java9.
Modul Komutları
Şöyle yaparız.
java –list-modules 
java –describe-module java.sql
Dosya 4 Kısımdan Oluşur
Kısımlar şöyle.
1. Modül ismi
2. requires - modul import eder
3. exports
4. provides

1. Modul İsmi
Açıklaması şöyle.
This first step boils down to picking a module name, and adding it as Automatic-Module-Name: <module name> entry to the library's MANIFEST.MF. That's it. With this first step you make your library usable as Java module without moving the library itself to Java 9 or creating a module descriptor for the library, yet.
2. requires
Örnek
Module olan kütüphaneyi requires ile import ederiz. Şöyle yaparız
requires java.xml.bind;
Örnek - Automatic Module Eklemek
Module olmayan kütüphaneyi de requires ile import ederiz. Burada dikkat edilmeyi gereken nokta isim olarak jar dosyasının ismini kullanmak.
requires mylib;
3. exports
Örnek ver

4. provides
Bir arayüzü gerçekleştiren sınıf varsa ve JVM tarafından bulunacaksa buraya ekleriz. Açıklaması şöyle
Nashorn exports itself as a scripting engine to be found by the javax.script.ScriptEngineManager through a "provides" entry in its module-info.java. It does not use the older, non-modular export mechanism of declaring itself through a relevant META-INF/services/… entry in its JAR file. This means that if the JAR is not loaded as a JPMS module, script engine manager will not discover it.

Hiç yorum yok:

Yorum Gönder