Rumah >Java >javaTutorial >Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle?

Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle?

Susan Sarandon
Susan Sarandonasal
2024-10-26 10:44:03760semak imbas

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"
}

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!

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