Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle?

Susan Sarandon
Lepaskan: 2024-10-26 10:44:03
asal
659 orang telah melayarinya

How to Exclude Specific Transitive Dependencies in 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"
}
Salin selepas log masuk

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"
}
Salin selepas log masuk

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"
  }
}
Salin selepas log masuk

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"
  }
}
Salin selepas log masuk

dengan mesej ralat berikut:

No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!