البرمجة

تنظيم مشاريع Gradle في IntelliJ IDEA: وحدات Main و Test المنفصلة

في الآونة الأخيرة، اكتشفت أن جميع مشاريعي في Gradle عند استيرادها في IntelliJ IDEA تقوم بإنشاء وحدات منفصلة للكود الرئيسي والاختبار. تظهر هذه الوحدات كما هو موضح في الصورة أدناه:

صورة المشروع

كما يظهر، هناك وحدة “main” تحتوي على جذر المحتوى src/main وتشمل فقط الفئات والموارد الرئيسية، وهناك أيضًا وحدة “test”. تبدو هذه الوحدات غير صحيحة. هل هذا سلوك متوقع؟

إصدار الـ IntelliJ IDEA الذي أستخدمه هو 2016.1.1، وإصدار Gradle هو 2.11.

فيما يلي محتوى ملف build.gradle:

groovy
apply plugin: 'idea' apply plugin: 'java' apply plugin: 'spring-boot' apply plugin: "jacoco" version = getVersion() sourceCompatibility = 1.8 targetCompatibility = 1.8 configurations { provided } sourceSets { main { compileClasspath += configurations.provided } test { resources { srcDir 'src/test/data' } compileClasspath += configurations.provided } } processResources { filter { String line -> line.replace("{version}", getVersion()) } } processTestResources { filter { String line -> line.replace("{version}", getVersion()) } } idea { module { scopes.PROVIDED.plus += [configurations.provided] } } repositories { mavenCentral() }

هل يمكنك مساعدتي في فهم هذا السلوك ومعرفة سبب إنشاء الوحدات المنفصلة للرمز الرئيسي والاختبار في IntelliJ IDEA؟

المزيد من المعلومات

بالطبع، دعني أزيد من التوضيح حول هذا السلوك الذي تشهده عند استيراد مشاريع Gradle في IntelliJ IDEA.

في Gradle، يتم تنظيم المشروعات عادةً في هيكل يحتوي على وحدات (Modules) مختلفة، وهذا ينطبق بشكل خاص عند استخدام بيئة تطويرية مثل IntelliJ IDEA. الفرق بين وحدة الرمز الرئيسي (main) ووحدة الاختبار (test) يعكس الفهم الشائع لتنظيم مشاريع Java.

يبدو أن ملف الـ build.gradle الخاص بك يحتوي على إعدادات متقدمة تتعامل مع مفهوم المصادر والتبعيات (source sets) في Gradle. تحديدًا، تم تكوين source sets لتشمل مجلدات مخصصة للرمز الرئيسي والاختبار. وهذا يؤدي إلى إنشاء وحدات في IntelliJ IDEA تمثل هذه المجلدات.

من الناحية الفنية، يعمل Gradle على تجميع مصادر الرمز الرئيسية والاختبار بشكل منفصل، وهو ما يعكس هذا التنظيم في بيئة التطوير.

للتحقق من ما إذا كان هذا السلوك متوقعًا أم لا، يفضل التحقق من إعدادات المشروع في IntelliJ IDEA والتحقق من تكوين الوحدات (Modules) هناك. ربما تجد إعدادات إضافية تحدد تكوين وحدات المشروع بشكل مخصص.

زر الذهاب إلى الأعلى