This release fixes a regression with generating Eclipse metadata GRADLE-3480. It also contains a less invasive change to a regression reported in 2.14-rc-4.
Check the 2.14-rc-6 release notes for more information. If no regressions are reported, a 2.14 final release will follow this coming Monday (June 13).
Upgrade Instructions
Switch your build to use Gradle 2.14-rc-6 quickly by updating your wrapper properties:
If you find a problem with Gradle 2.14-rc-6, please post a reply to this topic or create a new topic in Bugs. Be sure to include which operating system you are using, the version of Gradle you upgraded from and any steps you have found that reproduces your problem.
You may want to wait with the release until tuesday. I don’t have any open issues with the last RC, but I am testing at my day-job, and I guess other people do the same too.
Seems there is a problem together with the STS Gradle plugin in Eclipse (Mars S2). I got the following exception (also for a new Gradle project from the wizard):
08:27:09.703 [ERROR] [org.gradle.BuildExceptionReporter] Initialization script ‘C:\Portable\PortableApps\eclipseMars.2\plugins\org.springsource.ide.eclipse.gradle.toolingapi_3.7.3.201602250836-RELEASE\toolingCustomModel\init.gradle’ line: 32
08:27:09.704 [ERROR] [org.gradle.BuildExceptionReporter]
08:27:09.704 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
08:27:09.704 [ERROR] [org.gradle.BuildExceptionReporter] Failed to notify build listener.
08:27:09.706 [ERROR] [org.gradle.BuildExceptionReporter] > org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.(Lorg/gradle/plugins/ide/internal/tooling/GradleProjectBuilder;)V
08:27:09.708 [ERROR] [org.gradle.BuildExceptionReporter]
08:27:09.708 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
08:27:09.720 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.internal.event.ListenerNotificationException: Failed to notify build listener.
08:27:09.721 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:55)
08:27:09.730 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
08:27:09.731 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
08:27:09.731 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
08:27:09.754 [ERROR] [org.gradle.BuildExceptionReporter] at com.sun.proxy.$Proxy10.projectsLoaded(Unknown Source)
08:27:09.755 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.NotifyingSettingsLoader.findAndLoadSettings(NotifyingSettingsLoader.java:36)
08:27:09.756 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:118)
08:27:09.756 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
08:27:09.756 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
08:27:09.757 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
08:27:09.757 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
08:27:09.758 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
08:27:09.759 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
08:27:09.760 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:88)
08:27:09.760 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:107)
08:27:09.760 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:48)
08:27:09.762 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
08:27:09.762 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
08:27:09.763 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
08:27:09.765 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
08:27:09.775 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
08:27:09.819 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
08:27:09.825 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
08:27:09.826 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
08:27:09.827 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
08:27:09.828 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.829 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
08:27:09.829 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.829 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
08:27:09.829 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.830 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
08:27:09.830 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.830 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
08:27:09.831 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
08:27:09.831 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.util.Swapper.swap(Swapper.java:38)
08:27:09.831 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
08:27:09.832 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.833 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
08:27:09.833 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
08:27:09.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
08:27:09.834 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
08:27:09.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
08:27:09.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.835 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
08:27:09.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
08:27:09.836 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
08:27:09.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
08:27:09.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
08:27:09.837 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
08:27:09.837 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NoSuchMethodError: org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.(Lorg/gradle/plugins/ide/internal/tooling/GradleProjectBuilder;)V
08:27:09.839 [ERROR] [org.gradle.BuildExceptionReporter] at io.pivotal.tooling.plugin.eclipse.StsEclipseProjectModelBuilder.(StsEclipseProjectModelBuilder.java:58)
08:27:09.851 [ERROR] [org.gradle.BuildExceptionReporter] at io.pivotal.tooling.plugin.eclipse.EclipseToolingModelPlugin.apply(EclipseToolingModelPlugin.java:23)
08:27:09.851 [ERROR] [org.gradle.BuildExceptionReporter] at io.pivotal.tooling.plugin.eclipse.EclipseToolingModelPlugin.apply(EclipseToolingModelPlugin.java:10)
08:27:09.852 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.plugins.ImperativeOnlyPluginApplicator.applyImperative(ImperativeOnlyPluginApplicator.java:35)
This worked with Gradle 2.12 (not tested with versions 2.13+).
missing Binary dependency substitution
Unfortunately (at least) these points are making trouble in our project, so switching to Buildship seems not be possible (yet).
The highlight of the 2.0.0 Buildship release will be in fact the dependency substitution.
Could you please provide some details of your environment where you received the IllegalArgumentException? What Gradle projects did you have in the Eclipse workspace and what Gradle versions did you use when you did the import?
Hi
The IllegalArgumentException is gone (maybe I used the 2.14-rc1 version for import, now it is 2.14).
But now I have another strange thing while creating an EAR. Executing the ear task shows:
Run build
Configure settings
Configure build
Calculate task graph
Run tasks
:generateCode
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:ear
Performing assemble does the same but I get an exception:
…
Root cause: java.lang.NullPointerException
at org.gradle.plugins.ear.descriptor.internal.DefaultEarModule.equals(DefaultEarModule.java:88)
at java.util.HashMap.getNode(HashMap.java:571)
at java.util.HashMap.containsKey(HashMap.java:595)
at java.util.HashSet.contains(HashSet.java:203)
at org.gradle.plugins.ear.Ear$_closure2.doCall(Ear.groovy:76)
at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
…
using a generated application.xml, the war file is added dependency.
Another point is bug 488015 which makes problems (we generate code → build/classes).
Regarding the dependency substitution, it seems that Buildship does not recognize an existing project in Eclipse (in the
Project and External Dependencies folder the path of the projects points to the file repo instead to the project.
The new stacktrace you’ve posted seems a lot like GRADLE-3471 which was fixed in Gradle 2.14. Can you please double-check that this happens with 2.14. If so, we have to re-open the issue.
Regarding Bug 488015 I have good news: the Gradle Tooling API already exposes this feature in the latest 3.0 snapshot. We plan to make use of this feature in Buildship 2.0.
The dependency substitution operates based on the project group and artifact ids, and requires Gradle 2.14 or later versions. If these conditions are met on your side, then a sample project exhibiting the problem would be nice for us to analyse your problem.
Thanks for your answers.
It seems that the first two points are ok with the newest snapshot (2.0.0.v20160619-2319-s).
Is the dependency substitution resolved automatically (on the base of the open projects in Eclipse) or is there a special syntax (or anything else) neccessary? In our case it should work with the normal syntax group:artifact:version because sometimes an artifact is available in Eclipse and sometimes not (for different team members).In the “Project and External Dependencies” folder there are only references to the repository (or the local cache).