Son yıllarda, birçok farklı görüş Java modül sisteminin bir parçası olmuştur. Modülleri tanımlama olasılığının birçok geliştiricisi olumlu bir şekilde karşı çıkarken, örneğin sürümlerin desteği gibi eksik özelliklerin tanımını teşvik eden birçok kritik görüş vardır. Ancak, bu tartışmayı hiç açmak istemiyorum. Kendim modül sisteminde birçok avantaj görüyorum ve özellikle çerçeve ve kütüphanelerin geliştiricilerinin (istiyorsunuz) her şeyi kullandığını anlayabiliyorum.
Hendrik Advers (@hendrikebbers), JCP uzman grubunun bir üyesi olan Java'nın şampiyonu ve farklı Javaone rock yıldızı hoparlörleri aldı. Kendi açık unsurları şirketi ile Hendrik şu anda Hedera Hashgraph'ı tasarlamaya ve hizmetlerini halka açık hale getirmeye yardımcı oluyor. Hendrik aynı zamanda Juug Dortmund ve Cyberland tarafından ve tüm dünyada Java teması hakkında dersler ve seminerler düzenliyor. “Mastering JavaFx 8 Controls” adlı kitabı 2014 yılında Oracle Press tarafından yayınlandı. Hendrik, TSC Emptopenjdk ve Eclipse WG benimseyenlerin bir üyesidir.
Bununla birlikte, burada büyük bir dezavantaj, Java modül sistemine hiçbir şekilde uyum sağlamayan (geçişli) bir bağımlılığın, modül sisteminin tanımlarına ve kısıtlamalarına karşılık gelmeyebileceği ve formun yoluna eklenemeyeceğidir. Java modül sistemi otomatik olarak her bir kavanoz için rota modülünde bulan bir modül oluşturur. Burada, genellikle bir kütüphanedeki küçük ayarlarla çözülebilen bazı sorunlar olabilir.
Farklı yayınlarda bu sorunlara daha yakından bakmak ve olası çözümleri göstermek istiyorum. Bu makale otomatik modüllerin kullanımı ve tanımına gider.
Formu otomatik bir modül olarak uygulayın
Modül sisteminin önemli bir tanımı, her modülün benzersiz bir isme ihtiyacı olmasıdır. Burada açıkça bildirilen modüller arasında bir module-info.java Bir ayrım ve otomatik modüllerin dolaylı olarak bildirildiği. Javase özelliklerinde daha fazla bilgi mevcuttur. Projedeki modül sisteminin avantajlarına sahip değilseniz module-info.java Kütüphanenizi otomatik bir modül olarak tanımlarsanız yeterlidir.
Bunun için tek ön koşul, formun benzersiz bir isme sahip olmasıdır. Gerekirse, Java, rota modülündeki kavanozlar için kavanoz adından bir isim bile çıkarabilir, bu da açıkça önerilmez. Her şeyden önce, otomatik bir modül için bir adın tanımı gerçekten çok basittir. Sadece borçlu Automatic-Module-Name Mülkiyet MANIFEST.MF kavanozların. Maven veya Grace bir oluşturma aracı olarak kullanılırsa, bunu otomatik olarak otomatik olarak eklentisinde oluşturabilirsiniz.
Aşağıdaki örnekte görebileceğiniz gibi, bir yapı maven için sadece maven-jar-plugin buna göre yapılandırılmalıdır:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>com.example.lib</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
Gradale'de, her Java yapısının bir parçası olması gereken Java-Library eklentisi kullanılarak her şey kolayca uygulanabilir. Burada sınıflarda kullanım için ayrıntılı bir belge mevcutken, aşağıdaki kod bir projeye basit bir entegrasyon gösterir:
tasks.jar {
manifest {
attributes("Automatic-Module-Name" to "com.example.lib")
}
}
Sonraki Adımlar
Değişiklikler gerçekten çok basit olduğundan, çekme talebi olarak açık kaynak kütüphaneleri için her şeyi sunmak için de idealdir. Bir örnekte, tanımlamak için bir PR'm var Automatic-Module-Name Java açık kaynak kütüphanesine eklendi. Belki bir veya bir açık kaynak geliştiricisi, kütüphanelerinizdeki böyle bir değişiklik için, örneğin Neulingen'in HacktberFest'e uygulanabilen böyle bir değişiklik için “iyi bir ilk sayı” oluşturur ve oluşturur.
Java 21'in yayınlanmasıyla, sanal iplikler kesinlikle son yılların en ilginç gelişmeleri arasındadır. Bu küçük yardımcılar, işletim sisteminin veya donanımının kaynaklarının sınırlarını zorlamadan sayısız müşteri taleplerini aynı anda kullanarak görevlerin işlenmesini daha uyumlu hale getirir.
Laboratuvarında Marwan Abu-Khalil, bir mimarinin nasıl yapılandırılması gerektiğini ve 5 Şubat 2024'te sanal ipliklerle Java ölçeklenebilir uygulamalarında nasıl tuzakların ve özel durumların dikkate alınması gerektiğini açıklıyor.
(RME)

Hendrik Advers (@hendrikebbers), JCP uzman grubunun bir üyesi olan Java'nın şampiyonu ve farklı Javaone rock yıldızı hoparlörleri aldı. Kendi açık unsurları şirketi ile Hendrik şu anda Hedera Hashgraph'ı tasarlamaya ve hizmetlerini halka açık hale getirmeye yardımcı oluyor. Hendrik aynı zamanda Juug Dortmund ve Cyberland tarafından ve tüm dünyada Java teması hakkında dersler ve seminerler düzenliyor. “Mastering JavaFx 8 Controls” adlı kitabı 2014 yılında Oracle Press tarafından yayınlandı. Hendrik, TSC Emptopenjdk ve Eclipse WG benimseyenlerin bir üyesidir.
Bununla birlikte, burada büyük bir dezavantaj, Java modül sistemine hiçbir şekilde uyum sağlamayan (geçişli) bir bağımlılığın, modül sisteminin tanımlarına ve kısıtlamalarına karşılık gelmeyebileceği ve formun yoluna eklenemeyeceğidir. Java modül sistemi otomatik olarak her bir kavanoz için rota modülünde bulan bir modül oluşturur. Burada, genellikle bir kütüphanedeki küçük ayarlarla çözülebilen bazı sorunlar olabilir.
Farklı yayınlarda bu sorunlara daha yakından bakmak ve olası çözümleri göstermek istiyorum. Bu makale otomatik modüllerin kullanımı ve tanımına gider.
Formu otomatik bir modül olarak uygulayın
Modül sisteminin önemli bir tanımı, her modülün benzersiz bir isme ihtiyacı olmasıdır. Burada açıkça bildirilen modüller arasında bir module-info.java Bir ayrım ve otomatik modüllerin dolaylı olarak bildirildiği. Javase özelliklerinde daha fazla bilgi mevcuttur. Projedeki modül sisteminin avantajlarına sahip değilseniz module-info.java Kütüphanenizi otomatik bir modül olarak tanımlarsanız yeterlidir.
Bunun için tek ön koşul, formun benzersiz bir isme sahip olmasıdır. Gerekirse, Java, rota modülündeki kavanozlar için kavanoz adından bir isim bile çıkarabilir, bu da açıkça önerilmez. Her şeyden önce, otomatik bir modül için bir adın tanımı gerçekten çok basittir. Sadece borçlu Automatic-Module-Name Mülkiyet MANIFEST.MF kavanozların. Maven veya Grace bir oluşturma aracı olarak kullanılırsa, bunu otomatik olarak otomatik olarak eklentisinde oluşturabilirsiniz.
Aşağıdaki örnekte görebileceğiniz gibi, bir yapı maven için sadece maven-jar-plugin buna göre yapılandırılmalıdır:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>com.example.lib</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
Gradale'de, her Java yapısının bir parçası olması gereken Java-Library eklentisi kullanılarak her şey kolayca uygulanabilir. Burada sınıflarda kullanım için ayrıntılı bir belge mevcutken, aşağıdaki kod bir projeye basit bir entegrasyon gösterir:
tasks.jar {
manifest {
attributes("Automatic-Module-Name" to "com.example.lib")
}
}
Sonraki Adımlar
Değişiklikler gerçekten çok basit olduğundan, çekme talebi olarak açık kaynak kütüphaneleri için her şeyi sunmak için de idealdir. Bir örnekte, tanımlamak için bir PR'm var Automatic-Module-Name Java açık kaynak kütüphanesine eklendi. Belki bir veya bir açık kaynak geliştiricisi, kütüphanelerinizdeki böyle bir değişiklik için, örneğin Neulingen'in HacktberFest'e uygulanabilen böyle bir değişiklik için “iyi bir ilk sayı” oluşturur ve oluşturur.

Java 21'in yayınlanmasıyla, sanal iplikler kesinlikle son yılların en ilginç gelişmeleri arasındadır. Bu küçük yardımcılar, işletim sisteminin veya donanımının kaynaklarının sınırlarını zorlamadan sayısız müşteri taleplerini aynı anda kullanarak görevlerin işlenmesini daha uyumlu hale getirir.
Laboratuvarında Marwan Abu-Khalil, bir mimarinin nasıl yapılandırılması gerektiğini ve 5 Şubat 2024'te sanal ipliklerle Java ölçeklenebilir uygulamalarında nasıl tuzakların ve özel durumların dikkate alınması gerektiğini açıklıyor.
(RME)