
Plugin de Gradle para el aprovisionamiento rápido y reproducible del IDE de Eclipse como artefacto de compilación, con soporte para compilaciones OSGi, p2 y RCP.
Goomph: IDE como artefacto de compilaciónTambién complementos para trabajar con SWT, OSGi, p2 y Eclipse RCP
Es posible que muchas instalaciones del IDE de Eclipse compartan un conjunto común de artefactos instalados, llamado "bundlepool". Esto significa que es rápido y eficiente obtener un IDE hecho a medida para cada proyecto, preconfigurado con todos los complementos y ajustes apropiados para el proyecto en cuestión.
Cuando ejecutas gradlew ide, construye y descarga un IDE en build/oomphIde con solo las funciones que necesitas. Tarda ~15 segundos y 1MB de espacio en disco una vez que todos los artefactos comunes se han almacenado en caché en ~/.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
}
}
Consulta el javadoc del complemento para un inicio rápido, y HOW_TO_AUTOMATE_IDE.md para ejemplos y detalles en mayor profundidad.
Resulta que las herramientas necesarias para implementar "IDE como artefacto de compilación" son las mismas que se necesitan para manipular los archivos de proyecto de eclipse, y también para construir complementos de Eclipse y aplicaciones RCP en primer lugar. Ese es el otro lado de Goomph. Para un proyecto de ejemplo, consulta la charla Gradle y Eclipse RCP.
Software de Eclipse del mundo real construido con Goomph:
A continuación se muestra un índice de las capacidades de Goomph, junto con enlaces al javadoc donde puedes encontrar ejemplos de uso.
com.diffplug.eclipse Archivos de proyecto de Eclipse y artefactos de maven central con mapeo de versiones de eclipse.apt corrige el proyecto de eclipse para que funcione con el procesamiento de anotaciones de Gradle.mavencentral facilita la adición de jars de dependencias desde una versión de eclipse.buildproperties utiliza build.properties para controlar una compilación de gradle, y corrige el classpath del proyecto de eclipse para incluir los recursos binarios especificados en build.properties.excludebuildfolder excluye la carpeta build de gradle de la indexación de recursos de Eclipse.projectdeps corrige un problema intermitente en el que las dependencias de otros proyectos dentro del workspace no siempre se resuelven correctamente dentro de Eclipse.com.diffplug.osgi Complementos para trabajar con OSGi.bndmanifest genera un manifiesto usando únicamente bnd, y lo emite para su consumo por el IDE.equinoxlaunch puede configurar y ejecutar aplicaciones equinox como parte de la compilación, como un generador de código.OsgiExecable facilita la ejecución de un fragmento de código dentro de un contenedor OSGi y la obtención del resultado desde fuera del contenedor.com.diffplug.p2 A y complementos para manipular datos p2.asmaven descarga dependencias de un repositorio p2 y las pone a disposición en un repositorio maven local.P2Model modela un conjunto de repositorios p2 e IUs, y proporciona métodos de conveniencia para ejecutar p2-director o la tarea ant p2.mirror contra estos.P2AntRunner ejecuta tareas ant de eclipse.CategoryPublisher modela la aplicación eclipse CategoryPublisher.FeaturesAndBundlesPublisher modela la aplicación eclipse FeaturesAndBundlesPublisher.Repo2Runnable modela la aplicación eclipse Repo2Runnable.com.diffplug.gradle.pde Tareas para ejecutar Eclipse PDE usando una instancia de eclipse descargada.PdeBuildTask ejecuta la compilación PDE para construir un producto RCP.PdeAntBuildTask ejecuta PDE sobre un archivo ant.com.diffplug.gradle Infraestructura diversa.CmdLineTask ejecuta una serie de comandos de shell, posiblemente copiando o moviendo archivos mientras tanto.JavaExecable facilita la ejecución de un fragmento de código en una JVM separada y la obtención del resultado de vuelta en esta.JavaExecWinFriendly supera las limitaciones de la longitud de la línea de comandos de Windows y de los classpaths largos.com.diffplug.gradle.eclipserunner Infraestructura para ejecutar aplicaciones eclipse sin interfaz gráfica.com.diffplug.configuration-cache-for-platform-specific-build te permite usar OS.getNative() y OS.getRunning() en tu compilación de gradle sin romper la caché de configuración.eclipseMavenCentral.net.ltgt.apt-eclipse.
com.diffplug.eclipse.apt.CategoryPublisher (#126).3.10.0.resourcefilters añade filtros de recursos al proyecto de eclipse.BndManifestPlugin.