
مكوّن إضافي لـ Gradle لإعداد بيئة Eclipse IDE بسرعة وبشكل قابل لإعادة الإنتاج كمنتج بناء، مع دعم بناءات OSGi وp2 وRCP.
من الممكن أن تتشارك العديد من التثبيتات الخاصة بـ Eclipse IDE مجموعةً مشتركة من المكوّنات المثبّتة، تُسمّى "bundlepool". وهذا يعني أنه من السريع والفعال الحصول على IDE مبني خصيصًا لكل مشروع، ومهيأ مسبقًا بجميع الإضافات والإعدادات المناسبة للمشروع المعني.
عند تشغيل gradlew ide، فإنه يبني IDE وينزّله إلى build/oomphIde مع الميزات التي تحتاجها فقط. يستغرق ذلك ~15 ثانية و1 ميغابايت من مساحة القرص بمجرد تخزين جميع المكوّنات الشائعة مؤقتًا في ~/.goomph.
apply plugin: 'com.diffplug.oomph.ide'
oomphIde {
repoEclipseLatest()
jdt {}
eclipseIni {
vmargs('-Xmx2g') // IDE can have up to 2 gigs of RAM
}
style {
classicTheme() // oldschool cool
niceText() // with nice fonts and visible whitespace
}
}
راجع javadoc الإضافة للبدء السريع، وHOW_TO_AUTOMATE_IDE.md للحصول على أمثلة وتفاصيل أكثر تعمقًا.
اتضح أن الأدوات اللازمة لتنفيذ مفهوم "IDE كمنتج بناء" هي نفسها الأدوات اللازمة للتعامل مع ملفات مشاريع Eclipse، وكذلك لبناء إضافات Eclipse وتطبيقات RCP أصلًا. هذا هو الجانب الآخر من Goomph. للاطلاع على مشروع مثال، راجع محاضرة Gradle وEclipse RCP.
برمجيات Eclipse واقعية بُنيت باستخدام Goomph:
فيما يلي فهرس بقدرات Goomph، بالإضافة إلى روابط إلى javadoc حيث يمكنك العثور على أمثلة للاستخدام.
com.diffplug.eclipse ملفات مشاريع Eclipse ومكوّنات maven central لتعيين إصدارات Eclipse.apt يُصلح مشروع Eclipse ليعمل مع معالجة التعليقات التوضيحية في Gradle.mavencentral يجعل من السهل إضافة ملفات jar للتبعيات من إصدار Eclipse.buildproperties يستخدم build.properties للتحكم في بناء Gradle، ويُصلح classpath الخاص بمشروع Eclipse ليشمل الأصول الثنائية المحددة في build.properties.excludebuildfolder يستبعد مجلد build الخاص بـ Gradle من فهرسة الموارد في Eclipse.projectdeps يُصلح مشكلة متقطعة حيث لا يتم دائمًا حل التبعيات على المشاريع الأخرى داخل مساحة العمل بشكل صحيح في Eclipse.resourcefilters يضيف مرشحات موارد إلى مشروع Eclipse.com.diffplug.osgi إضافات للعمل مع OSGi.bndmanifest ينشئ ملف manifest باستخدام bnd فقط، ويُخرجه لاستخدام IDE.equinoxlaunch يمكنه تهيئة وتشغيل تطبيقات equinox كجزء من البناء، مثل مولّد الأكواد.OsgiExecable يجعل من السهل تشغيل جزء من الكود داخل حاوية OSGi، والحصول على النتيجة من خارج الحاوية.com.diffplug.p2 A وإضافات للتعامل مع بيانات p2.asmaven ينزّل التبعيات من مستودع p2 ويجعلها متاحة في مستودع maven محلي.P2Model ينشئ نموذجًا لمجموعة من مستودعات p2 ووحدات التثبيت (IUs)، ويوفّر طرقًا ملائمة لتشغيل p2-director أو مهمة ant الخاصة بـ p2.mirror عليها.P2AntRunner يشغّل مهام ant الخاصة بـ Eclipse.CategoryPublisher ينشئ نموذجًا لتطبيق Eclipse الخاص بـ CategoryPublisher.FeaturesAndBundlesPublisher ينشئ نموذجًا لتطبيق Eclipse الخاص بـ FeaturesAndBundlesPublisher.Repo2Runnable ينشئ نموذجًا لتطبيق Eclipse الخاص بـ Repo2Runnable.com.diffplug.gradle.pde مهام لتشغيل Eclipse PDE باستخدام نسخة Eclipse مُنزّلة.PdeBuildTask يشغّل بناء PDE لبناء منتج RCP.PdeAntBuildTask يشغّل PDE على ملف ant.com.diffplug.gradle بنية تحتية متنوعة.CmdLineTask يشغّل سلسلة من أوامر الصدفة (shell)، وقد ينسخ أو ينقل الملفات في هذه الأثناء.JavaExecable يجعل من السهل تشغيل جزء من الكود في JVM منفصل، واستعادة النتيجة إلى هذا الـ JVM.JavaExecWinFriendly يتغلب على القيود المتعلقة بطول سطر الأوامر في Windows ومسارات classpath الطويلة.com.diffplug.gradle.eclipserunner بنية تحتية لتشغيل تطبيقات Eclipse بدون واجهة رسومية (headless).com.diffplug.configuration-cache-for-platform-specific-build يتيح لك استخدام OS.getNative() وOS.getRunning() في بناء Gradle الخاص بك دون كسر ذاكرة التخزين المؤقت للتكوين (configuration cache).eclipseMavenCentral.net.ltgt.apt-eclipse.
com.diffplug.eclipse.apt.CategoryPublisher (#126).3.10.0.BndManifestPlugin.