Rumah >Java >javaTutorial >Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle?
Mengecualikan Ketergantungan Transitif dengan Gradle
Dalam Gradle, apabila menggunakan pemalam aplikasi untuk menjana fail jar, adalah mungkin untuk menemui kebergantungan transitif yang anda mungkin mahu mengecualikan. Untuk mencapai matlamat ini, kaedah kecualikan boleh digunakan.
Gelagat Lalai Kecualikan
Pada mulanya, percubaan telah dibuat untuk mengecualikan semua kejadian org.slf4j:slf4j- log4j12 menggunakan kod berikut:
configurations { runtime.exclude group: "org.slf4j", name: "slf4j-log4j12" }
Walau bagaimanapun, ini mengakibatkan pengecualian semua artifak org.slf4j, termasuk slf4j-api.
Penyesuaian Pengecualian
Untuk memperhalusi pengecualian, sifat kumpulan dan modul boleh digunakan:
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Pendekatan ini berjaya mengecualikan hanya org.slf4j:slf4j-log4j12 tanpa menjejaskan slf4j lain kebergantungan.
Kecualikan daripada Kebergantungan Individu
Jika pengecualian dikehendaki untuk kebergantungan tertentu, sintaks berikut boleh digunakan:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", module: "slf4j-log4j12" } }
Penghadan Kaedah Kecualikan
Adalah penting untuk ambil perhatian bahawa walaupun sifat arbitrari boleh ditentukan dalam Pengecualian, ini tidak dibenarkan apabila dikecualikan daripada kebergantungan individu. Sebagai contoh, kod berikut akan gagal:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", name: "slf4j-log4j12" } }
dengan mesej ralat berikut:
No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
Memahami Modul Gradle
Dalam Gradle , sifat modul sepadan dengan artifactId Maven. Oleh itu, untuk menentukan modul artifak Maven tertentu, periksa artifakIdnya. Contohnya, artifak Maven org.slf4j:slf4j-log4j12 akan mempunyai modul Gradle slf4j-log4j12.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!