
Plugin Gradle per un provisioning rapido e riproducibile dell'IDE Eclipse come artefatto di build, con supporto per build OSGi, p2 e RCP.
È possibile avere molte installazioni dell'IDE Eclipse che condividono un insieme comune di artefatti installati, chiamato "bundlepool". Ciò significa che è veloce ed efficiente ottenere un IDE costruito su misura per ogni progetto, preconfigurato con tutti i plugin e le impostazioni appropriate per il progetto in questione.
Quando esegui gradlew ide, esso costruisce e scarica un IDE in build/oomphIde con solo le funzionalità di cui hai bisogno. Richiede circa 15 secondi e 1 MB di spazio su disco una volta che tutti gli artefatti comuni sono stati memorizzati nella cache in ~/.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
}
}
Vedi il javadoc del plugin per un avvio rapido, e HOW_TO_AUTOMATE_IDE.md per esempi e dettagli più approfonditi.
Si scopre che gli strumenti necessari per implementare "IDE come artefatto di build" sono gli stessi strumenti necessari per manipolare i file di progetto di Eclipse, e anche per costruire plugin Eclipse e applicazioni RCP in primo luogo. Questo è l'altro lato di Goomph. Per un progetto di esempio, vedi l'intervento su Gradle e Eclipse RCP.
Software Eclipse reale costruito con Goomph:
Di seguito è riportato un indice delle capacità di Goomph, insieme ai collegamenti al javadoc dove puoi trovare esempi di utilizzo.
com.diffplug.eclipse File di progetto Eclipse e artefatti maven centrali con mapping delle versioni Eclipse.apt corregge il progetto Eclipse per funzionare con l'elaborazione delle annotazioni di Gradle.mavencentral rende facile aggiungere jar di dipendenza da una release Eclipse.buildproperties usa build.properties per controllare una build Gradle e corregge il classpath del progetto Eclipse per includere le risorse binarie specificate in build.properties.excludebuildfolder esclude la cartella build di Gradle dall'indicizzazione delle risorse di Eclipse.projectdeps risolve un problema intermittente in cui le dipendenze da altri progetti all'interno del workspace non vengono sempre risolte correttamente in Eclipse.resourcefilters aggiunge filtri delle risorse al progetto Eclipse.com.diffplug.osgi Plugin per lavorare con OSGi.bndmanifest genera un manifest usando puramente bnd e lo produce per il consumo dell'IDE.equinoxlaunch può configurare ed eseguire applicazioni equinox come parte della build, ad esempio un generatore di codice.OsgiExecable rende facile eseguire un blocco di codice all'interno di un contenitore OSGi e ottenere il risultato dall'esterno del contenitore.com.diffplug.p2 Plugin per manipolare dati p2.asmaven scarica dipendenze da un repository p2 e le rende disponibili in un repository Maven locale.P2Model modella un insieme di repository p2 e IU e fornisce metodi di convenienza per eseguire p2-director o l'attività ant p2.mirror contro di essi.P2AntRunner esegue attività ant di Eclipse.CategoryPublisher modella l'applicazione Eclipse CategoryPublisher.FeaturesAndBundlesPublisher modella l'applicazione Eclipse FeaturesAndBundlesPublisher.Repo2Runnable modella l'applicazione Eclipse Repo2Runnable.com.diffplug.gradle.pde Attività per eseguire Eclipse PDE utilizzando un'istanza Eclipse scaricata.PdeBuildTask esegue una build PDE per costruire un prodotto RCP.PdeAntBuildTask esegue PDE su un file ant.com.diffplug.gradle Infrastruttura varia.CmdLineTask esegue una serie di comandi shell, eventualmente copiando o spostando file nel frattempo.JavaExecable rende facile eseguire un blocco di codice in una JVM separata e ottenere il risultato in questa.JavaExecWinFriendly supera le limitazioni di Windows relative alla lunghezza della riga di comando e ai classpath lunghi.com.diffplug.gradle.eclipserunner Infrastruttura per eseguire applicazioni Eclipse headless.com.diffplug.configuration-cache-for-platform-specific-build ti permette di usare OS.getNative() e OS.getRunning() nella tua build Gradle senza rompere la cache di configurazione.eclipseMavenCentral.net.ltgt.apt-eclipse.
com.diffplug.eclipse.apt.CategoryPublisher (#126).3.10.0.BndManifestPlugin.