Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan Isu Ketergantungan Modul Java 9 dengan Nama Dijana Auto yang Mengandungi Kata Kunci Terpelihara?

Bagaimana untuk Menyelesaikan Isu Ketergantungan Modul Java 9 dengan Nama Dijana Auto yang Mengandungi Kata Kunci Terpelihara?

Barbara Streisand
Barbara Streisandasal
2024-11-28 15:02:10406semak imbas

How to Resolve Java 9 Module Dependency Issues with Auto-Generated Names Containing Reserved Keywords?

Tidak Dapat Menyelesaikan Ketergantungan Modul untuk Nama Dijana Auto dalam Java 9?

Isu ini timbul apabila kebergantungan dengan modul yang dijana secara automatik nama mengandungi kata kunci "asli," yang dikhaskan di Java 9. Akibatnya, menjadi mustahil untuk menambahnya sebagai pergantungan kepada deskriptor modul.

Penyelesaian:

Untuk menyelesaikan isu ini, dua pendekatan utama boleh dipertimbangkan:

  1. Tambah Atribut Nama Modul Automatik:

    Pemilik artifak boleh membungkus Fail META-INF/MANIFEST.MF dengan artifak yang menentukan atribut Automatic-Module-Name. Atribut ini mentakrifkan nama modul yang akan digunakan oleh deskriptor modul. Dengan menetapkan Automatic-Module-Name kepada nama yang sah (tidak termasuk "asli"), isu itu boleh diselesaikan.

  2. Tambah Pengisytiharan Modul ke JAR:

    Pemilik artifak boleh menambah pengisytiharan modul menggunakan module-info.java ke fail JAR mereka. Ini membolehkan mereka menentukan nama modul secara eksplisit, dengan itu mengelakkan nama yang dijana secara automatik. Walau bagaimanapun, pendekatan ini memerlukan penghijrahan secara beransur-ansur, kerana perpustakaan dan rangka kerja mengamalkannya dari bawah ke atas.

Spesifikasi Deskriptor Modul:

Mengikut Spesifikasi pengisytiharan modul Java 9, nama modul terdiri daripada satu atau lebih pengecam Java yang dipisahkan oleh noktah. Ini bermakna nama modul mesti mematuhi peraturan berikut:

  • Setiap komponen mestilah pengecam Java yang sah (tidak termasuk kata kunci).
  • Jika nama domain yang digunakan untuk nama modul mengandungi aksara atau kata kunci khas, ia mesti ditukar kepada garis bawah.
  • Jika komponen bermula dengan digit atau aksara lain tidak dibenarkan sebagai aksara pertama bagi pengecam, garis bawah mesti diawali.

Nota pada Underscore dalam Java 9:

Walaupun garis bawah biasanya dibenarkan sebagai sebahagian daripada nama modul, ia adalah penting untuk ambil perhatian bahawa garis bawah kini menjadi kata kunci dalam Java 9. Oleh itu, pengecam yang mengandungi garis bawah sebagai aksara awal mesti dielakkan. Contohnya:

int _native; // Works fine
int _; // Causes an error in Java 9

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Ketergantungan Modul Java 9 dengan Nama Dijana Auto yang Mengandungi Kata Kunci Terpelihara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn