Home

Awesome

<img align="left" src="images/goomph_logo.png"> Goomph: IDE as build artifact

Also plugins for working with SWT, OSGi, p2, and Eclipse RCP

<!---freshmark shields output = [ link(shield('Gradle plugin', 'plugins.gradle.org', 'yes', 'blue'), 'https://plugins.gradle.org/search?term=goomph'), link(shield('Maven artifact', 'mavenCentral', 'com.diffplug.gradle:goomph', 'blue'), 'https://search.maven.org/artifact/com.diffplug.gradle/goomph'), link(shield('License Apache', 'license', 'Apache', 'blue'), 'https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)'), '', link(shield('Changelog', 'changelog', '{{versionLast}}', 'brightgreen'), 'CHANGES.md'), link(shield('Javadoc', 'javadoc', 'yes', 'brightgreen'), 'https://javadoc.io/doc/com.diffplug.gradle/goomph/{{versionLast}}/index.html'), link(shield('Live chat', 'gitter', 'live chat', 'brightgreen'), 'https://gitter.im/diffplug/goomph'), link(image('CircleCI', 'https://circleci.com/gh/diffplug/goomph.svg?style=shield'), 'https://circleci.com/gh/diffplug/goomph') ].join('\n'); -->

Gradle plugin Maven artifact License Apache

Changelog Javadoc Live chat CircleCI

<!---freshmark /shields --> <!---freshmark javadoc output = prefixDelimiterReplace(input, 'https://javadoc.io/doc/com.diffplug.gradle/goomph/', '/', versionLast); -->

Blog posts

Building OSGi bundles, Eclipse plugins, and RCP applications.

It turns out that the tooling required to implement "IDE-as-build-artifact" is the same tooling required to manipulate eclipse project files, and also to build Eclipse plugins and RCP applications in the first place. That is Goomph's other side. For an example project, see the Gradle and Eclipse RCP talk.

Real world Eclipse software built with Goomph:

Below is an index of Goomph's capabilities, along with links to the javadoc where you can find usage examples.

com.diffplug.eclipse Eclipse project files and eclipse version-mapping maven central artifacts.

com.diffplug.osgi Plugins for working with OSGi.

com.diffplug.p2 A and plugins for manipulating p2 data. (mostly abandoned now)

com.diffplug.gradle.pde Tasks for running Eclipse PDE using a downloaded eclipse instance. (this part is mostly abandoned now)

com.diffplug.gradle Miscellaneous infrastructure.

com.diffplug.gradle.eclipserunner Infrastructure for running headless eclipse applications.

Other

IDE-as-build-artifact. (this part is mostly abandoned)

It is possible to have many installations of the Eclipse IDE share a common set of installed artifacts, called a "bundlepool". This means it is fast and efficient to get a purpose-built IDE for every project, preconfigured with all the plugins and settings appropriate for the project at hand.

When you run gradlew ide, it builds and downloads an IDE into build/oomphIde with just the features you need. Takes ~15 seconds and 1MB of disk space once all the common artifacts have been cached at ~/.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
  }
}

See the plugin's javadoc for a quickstart, and HOW_TO_AUTOMATE_IDE.md for examples and more in-depth details.

<!---freshmark /javadoc -->

Acknowledgements