Buildship 2.1.0 is now available

We are happy to announce Buildship 2.1.0 containing build scan support, more flexible preferences and more.

Support for build scans

Build scans can now be enabled in the preferences. If enabled, and the target project applies the com.gradle.build-scan plugin then each build invocation will publish a scan.

To access the scans more easily, the URLs in the console view are turned into clickable link.

Besides, the Executions view contains a new toolbar action to open published build scans if there’s one.

More flexible preferences

Buildship now provides all preferences, like Gradle distribution, user home and offline mode on three different levels: For the whole workspace, for a specific Gradle build or for an individual run configuration. The lower levels can override the settings in the upper levels.

New project and Import wizard

Workspace preferences

Project preferences

Run configuration

Please note that the Gradle user home and the local Gradle distribution location are stored as absolute paths. This means if you specify them, then the generated configuration file should not be shared. To make this behavior clear we marked those preferences with warning icons.

Task and Executions view headers are shown by default

Users repeatedly reported that the columns in the Tasks and in the Executions view are not wide enough and it’s hard to find the Show Headers option in the view’s context menu. Thus, we removed the option and now show the headers by default.

Installation

Buildship 2.1.0 is available from the Eclipse Marketplace or from the eclipse.org update sites.

1 Like

Problems with new Oxygen:

Synchronize Gradle projects with workspace failed due to an unexpected error.

loader constraint violation: when resolving method “com.gradleware.tooling.toolingmodel.repository.internal.DefaultOmniEclipseProject.getAll()Lcom/google/common/collect/ImmutableList;” the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) of the current class, org/eclipse/buildship/core/workspace/internal/DefaultModelProvider, and the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) for the method’s defining class, com/gradleware/tooling/toolingmodel/repository/internal/DefaultOmniEclipseProject, have different Class objects for the type com/google/common/collect/ImmutableList used in the signature
java.lang.LinkageError: loader constraint violation: when resolving method “com.gradleware.tooling.toolingmodel.repository.internal.DefaultOmniEclipseProject.getAll()Lcom/google/common/collect/ImmutableList;” the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) of the current class, org/eclipse/buildship/core/workspace/internal/DefaultModelProvider, and the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) for the method’s defining class, com/gradleware/tooling/toolingmodel/repository/internal/DefaultOmniEclipseProject, have different Class objects for the type com/google/common/collect/ImmutableList used in the signature
at org.eclipse.buildship.core.workspace.internal.DefaultModelProvider.fetchEclipseGradleProjects(DefaultModelProvider.java:102)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.fetchEclipseProjects(SynchronizeGradleBuildsJob.java:91)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.synchronizeBuild(SynchronizeGradleBuildsJob.java:81)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.runToolingApiJob(SynchronizeGradleBuildsJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiJob$1.run(ToolingApiJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiInvoker.invoke(ToolingApiInvoker.java:62)
at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

java.lang.LinkageError: loader constraint violation: when resolving method "com.gradleware.tooling.toolingmodel.repository.internal.DefaultOmniEclipseProject.getAll()Lcom/google/common/collect/ImmutableList;" the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) of the current class, org/eclipse/buildship/core/workspace/internal/DefaultModelProvider, and the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) for the method's defining class, com/gradleware/tooling/toolingmodel/repository/internal/DefaultOmniEclipseProject, have different Class objects for the type com/google/common/collect/ImmutableList used in the signature
at org.eclipse.buildship.core.workspace.internal.DefaultModelProvider.fetchEclipseGradleProjects(DefaultModelProvider.java:102)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.fetchEclipseProjects(SynchronizeGradleBuildsJob.java:91)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.synchronizeBuild(SynchronizeGradleBuildsJob.java:81)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.runToolingApiJob(SynchronizeGradleBuildsJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiJob$1.run(ToolingApiJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiInvoker.invoke(ToolingApiInvoker.java:62)
at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

The fix is under way: https://github.com/eclipse/buildship/issues/519

Thanks for this info. I’m glad this try was just my home computer, not at work… :slight_smile:

I’ve created a snapshot release containing the fix. Can you please install it and verify if it fixes your problem? The update site url is http://download.eclipse.org/buildship/updates/e47/snapshots/2.x/

The snapshot seems to work. No errors reported while installing and no errors after restart of Eclipse.

Even with the update I am seeing a similar problem when I try to open the Preferences -> Gradle tab, it shows a message saying:

The currently displayed page contains invalid values.

In the Error Log view I see:

	at org.eclipse.buildship.ui.util.widget.UiBuilder$UiBuilderFactory.<init>(UiBuilder.java:167)
	at org.eclipse.buildship.ui.util.widget.GradleDistributionGroup.createWidgets(GradleDistributionGroup.java:96)
	at org.eclipse.buildship.ui.util.widget.GradleDistributionGroup.<init>(GradleDistributionGroup.java:86)
	at org.eclipse.buildship.ui.util.widget.GradleProjectSettingsComposite.createGradleDistributionGroup(GradleProjectSettingsComposite.java:90)
	at org.eclipse.buildship.ui.util.widget.GradleProjectSettingsComposite.<init>(GradleProjectSettingsComposite.java:61)
	at org.eclipse.buildship.ui.util.widget.GradleProjectSettingsComposite.withoutOverrideCheckbox(GradleProjectSettingsComposite.java:173)
	at org.eclipse.buildship.ui.preferences.GradleWorkbenchPreferencePage.createContents(GradleWorkbenchPreferencePage.java:55)
	at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:241)
	at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1426)
	at org.eclipse.jface.preference.PreferenceDialog$8.run(PreferenceDialog.java:1193)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1185)
	at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:591)
	at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:657)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:654)
	at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:872)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:44)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
	at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:869)
	at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1238)
	at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1261)
	at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:81)
	at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:261)
	at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:256)
	at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:426)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4033)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3700)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
	at org.eclipse.jface.window.Window.open(Window.java:794)
	at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:211)
	at org.eclipse.ui.internal.handlers.ShowPreferencePageHandler.execute(ShowPreferencePageHandler.java:59)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:196)
	at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.runCommand(CocoaUIHandler.java:647)
	at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler.access$5(CocoaUIHandler.java:634)
	at org.eclipse.e4.ui.workbench.renderers.swt.cocoa.CocoaUIHandler$3.widgetSelected(CocoaUIHandler.java:506)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4257)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1314)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4081)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)```

Hi @cmuchin! Can you look up the plugin versions you use? I’m interested in the following ones:

  • org.eclipse.buildship.core
  • com.google.guava
  • com.gradleware.tooling.model

Unfortunately I just nuked everything and did a fresh install of Oxygen and Buildship 2.1.1 and it seems to be working now. I suspect the issue was related to performing upgrades for both Neon and Buildship 2.0.2.

1 Like

2.1.1 is still broken when used in conjunction with SpringToolSuite. When doing a “New Spring Starter Project”, choose Gradle as the build tool & Buildship 2.x as the plugin version. It then says that it can’t be completed because the Buildship 2.x plugin is not installed. We’ve had to back down to 2.0.1 (this happens with 2.0.2 as well).

Cannot start the Gradle import wizard after latest buildship 2.x update on STS 3.9 (Oxygen):

I’m using the snapshot update

Buildship - http://download.eclipse.org/buildship/updates/e47/releases/2.x

Is there a workaround?

Please follow this issue for the STS incompatibility, which we’ll fix soon.

1 Like