I wanted to float this out there just so others could comment on it. We've been working on a UI for gradle as well as an Idea plugin that not only contains the UI, but also some support for debugging gradle within an IDE. Two of the goals here were:
- Don't tie an IDE plugin to a specific version of gradle. This means the standalone gradle UI is the same one used by an IDE. This allows you to get the latest features of gradle without waiting for an updated plugin. - Allow others to easily write plugins for other IDEs. You should mostly need to write the IDE-specific code. The gradle-specific code is minimized, especially if you just want to get the UI into the IDE. To accommodate these, we have locally created an 'open API' subproject. This provides a simple versioned way to interact with gradle. The open API jar is all that is needed to develop/distribute a plugin. It provides some static functions that dynamically load gradle from a directory you specify to do things like create the UI or execute gradle commands directly (and I think some gradle debugger information may soon be accessible there). All you need is the gradle home directory and the open API jar. As per the first goal, we want this to be forward compatible. The issue arises that things like the UI require a certain level of IDE integration. Its not just a swing component, but you can right click a project and select 'Edit File' to open it in your IDE. It also stores the current settings with the IDE's project file (which is very IDE-specific). So the open API is mostly made of versioned interfaces. Once a certain milestone is hit, all interfaces will be frozen. New functionality can still be added as we internally use wrapper/proxy classes to abstract these interfaces. These wrappers define the default behavior of new features when called by an older open API. This also means that one IDE plugin is inherently compatible with multiple versions of gradle simultaneously. This is useful if you're working with several versions of a product (we're still doing service packs for a version of our product that was released over 3 years ago). Comments? Mike Automated Logic Research Team --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email