We are happy to announce Buildship 2.2.0 featuring runtime classpath separation, Java 9 support and more.
Runtime classpath separation
The previous releases did not define any separation for the Eclipse runtime classpath. This meant that when a user launched a Java application or executed a test via JDT then all dependencies from all configurations were available on the classpath.
This release introduces runtime classpath separation based on the dependency scope information supplied by Gradle. If the project uses Gradle 4.4 or newer then all source directories and binary dependencies define which scope (main, test, integTest, etc.) they belong. Buildship then filters elements from the runtime classpath if the launched application is associated with a different scope.
Note, that Buildship still has to use Eclipse’s default flat classpath approach, so this feature can only filter unwanted dependencies based on the dependency scopes.
This feature is especially useful for the Spring Tool Suite users. In Spring Boot it is common practice to keep the application configuration in the main sources and override it with a similar one in the test sources. Before Buildship 2.2 when the main application was launched from the IDE, the test configuration was still picked up, making the IDE unusable in this use-case. With this new feature, launching a Spring Boot app from the command line and from Eclipse produces consistent results.
Syntax highlighting for Gradle script files
Gradle build files are now opened in a dedicated Gradle editor which provides basic syntax highlighting.
Automatic project synchronization
Eclipse can be configured to automatically execute Gradle project synchronization when a build script changes. The feature can be enabled in the import wizard or in the workspace and project preferences.
Streamlining task and executions view
To follow the platform recommendations, the expand and collapse actions on the view toolbars have been updated to work on the entire tree and not just on the selected elements. Moreover, double-clicking on non-leaf tree items expands-collapses the subtree.
Java 9 compatibility for Buildship plugins
Buildship now also works if the host Eclipse is running on Java 9. We updated the incompatible dependencies and added checks into our build infrastructure to verify that everything works with the latest Java release.
We would like to thank the following community members for making contributions to this release.
- Christofer Moine: Syntax highlighting for Gradle script files (eclipse/buildship#585).
- Andy Wu: Streamlining task and executions view (eclipse/buildship#551)
- Chris Boyd: Automatic Gradle project refresh when build script changes (eclipse/buildship#335)