Dalam Gradle, mengecualikan kebergantungan transitif adalah penting untuk mengurus kebergantungan dan mengoptimumkan prestasi binaan. Soalan ini meneroka cara untuk mengecualikan semua kejadian kebergantungan transitif tertentu, org.slf4j:slf4j-log4j12, sambil mengekalkan artifak slf4j lain yang diperlukan.
Pada mulanya, tetapkan pengecualian menggunakan runtime.exclude group: "org.slf4j ", name: "slf4j-log4j12" secara tidak sengaja mengecualikan semua artifak slf4j. Untuk menangani perkara ini, adalah perlu untuk menggunakan modul dan bukannya nama untuk mengecualikan kebergantungan transitif, seperti yang ditunjukkan oleh:
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Sintaks ini berkesan mengecualikan hanya modul slf4j-log4j12 tertentu sambil membenarkan artifak slf4j lain disertakan .
Selain itu, adalah penting untuk memahami konsep "modul" dalam Gradle. Modul sepadan dengan artifak Maven tertentu. Gradle memperoleh modul daripada groupId dan artifactId artifak Maven, mengikut konvensyen:
[group]:[artifactId]
Oleh itu, untuk org.slf4j:slf4j-log4j12, modulnya ialah:
org.slf4j:slf4j-log4j12
Dengan menentukan modul, Gradle boleh menyasarkan dan mengecualikan kebergantungan transitif tertentu dengan tepat tanpa menjejaskan artifak yang tidak berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Ketergantungan Transitif Khusus dalam Gradle Tanpa Menjejaskan Artifak Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!