استبعاد التبعيات المتعدية مع Gradle
في Gradle، عند استخدام البرنامج الإضافي للتطبيق لإنشاء ملف jar، من الممكن مواجهة تبعيات متعدية قد ترغب في استبعاد. لتحقيق ذلك، يمكن استخدام طريقة الاستبعاد.السلوك الافتراضي للاستبعادفي البداية، جرت محاولة لاستبعاد كافة مثيلات org.slf4j:slf4j- log4j12 باستخدام الكود التالي:
التكوينات { مجموعة runtime.exclude: "org.slf4j"، الاسم: "slf4j-log4j12"
configurations { runtime.exclude group: "org.slf4j", name: "slf4j-log4j12" }جميع عناصر org.slf4j، بما في ذلك slf4j-api.
تخصيص الاستثناءات
لتحسين الاستبعاد، يمكن استخدام خصائص المجموعة والوحدة النمطية:
التكوينات { مجموعة runtime.exclude: "org.slf4j"، الوحدة النمطية: "slf4j-log4j12" ينجح هذا الأسلوب في استبعاد org.slf4j:slf4j-log4j12 فقط دون التأثير على تبعيات slf4j الأخرى.configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
الاستبعاد من تبعية فردية
إذا كان الاستبعاد مطلوب لتبعية معينة، ويمكن استخدام الصيغة التالية:
dependeency { ترجمة ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { استبعاد المجموعة: "org.slf4j"، الوحدة النمطية: "slf4j-log4j12" }
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", module: "slf4j-log4j12" } }
من المهم ملاحظة أنه على الرغم من أنه يمكن تحديد خصائص عشوائية في الاستثناءات، إلا أن هذا غير مسموح به عند الاستبعاد من التبعيات الفردية. على سبيل المثال، سوف تفشل التعليمات البرمجية التالية:
dependeency { ترجمة ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { استبعاد المجموعة: "org.slf4j"، الاسم: "slf4j-log4j12" }مع رسالة الخطأ التالية:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", name: "slf4j-log4j12" } }لا توجد خاصية من هذا القبيل: اسم للفئة: org.gradle.api.internal.artifacts.DefaultExcludeRule
No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
في Gradle، تتوافق خاصية الوحدة النمطية مع Maven artifactId. لذلك، لتحديد الوحدة النمطية لقطعة أثرية معينة من Maven، قم بفحص معرف القطعة الأثرية الخاص بها. على سبيل المثال، قطعة أثرية Maven org.slf4j:slf4j-log4j12 ستحتوي على وحدة Gradle من slf4j-log4j12.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3