بما في ذلك المشاريع الفرعية باستخدام بطاقة Wildcard في ملف إعدادات Gradle
سؤال
في Gradle ، تحتاج إلى تحديد المشاريع الفرعية ليتم بناؤها في ملف "Settings.Gradle". لبناء ثلاثة مشاريع أطفال ، ستفعل شيئًا كهذا:
include "child1", "child2", "child3"
المشكلة التي أواجهها هي أن لديّ عدد قليل من المشاريع التي يجب تضمينها. هل هناك طريقة لاستخدام بطاقة البرية في هذا التعريف؟ أنا أبحث عن شيء مثل هذا:
include "*"
هذا بالطبع لا يعمل. سيكون هذا أسهل كثيرًا في العمل نظرًا لأن لدي العديد من المشروعات الفرعية التي يجب تضمينها. هل هناك طريقة لتضمين الدلائل الفرعية تلقائيًا كمشاريع؟
المحلول
هل يمكنك أن تفعل شيئًا مثل:
include (1..10).collect { "Child$it" }
لتشمل "child1" حتى "child10"؟
من الواضح أنك ستحتاج إلى تغيير التجميع إلى نوع من فحص المجلد ، ولكن هذا الاختبار السريع يعمل ثم يكون للفحص فرصة جيدة
نصائح أخرى
include rootDir.listFiles().findAll {
it.isDirectory()
&& !( it =~ ".*/\\..*") // don't add directories starting with '.'
&& !( it =~ "^\\..*") // don't add directories starting with '.'
}.collect {
it.getName()
}.toArray(new java.lang.String[0])
فعلت الخدعة بالنسبة لي
الدعم التالي يدعم التسلسل الهرمي للعمق التعسفي:
rootDir.eachFileRecurse { f ->
if ( f.name == "build.gradle" ) {
String relativePath = f.parentFile.absolutePath - rootDir.absolutePath
String projectName = relativePath.replaceAll("[\\\\\\/]", ":")
include projectName
}
}
لا تنتمي إلى StackOverflow