gretty icon indicating copy to clipboard operation
gretty copied to clipboard

Exception with multiple subprojects configured with gretty.

Open Paul-Shaw opened this issue 10 years ago • 14 comments

We are using gretty 1.2.4

We have a large multi-project build with about 30 projects each having their own build.gradle file.

We get an exception when attempting to run tasks on any project as soon as we have more than one project with gretty configured. However each single project configured separately works fine.

Do we need to do some kind of farm configuration to override the default farm configuration?

We get the following exception

  • Exception is: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app:vbook'. at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79) at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74) at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61) at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:487) at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:85) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47) at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:90) at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:49) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:71) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.akhikhl.gretty.ProductConfigurer(org.gradle.api.internal.project.DefaultProject_Decorated, java.io.File, java.lang.String, org.akhikhl.gretty.ProductExtension_Decorated) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1722) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1525) at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:107) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:202) at org.akhikhl.gretty.ProductsConfigurer$_configureProducts_closure3.doCall(ProductsConfigurer.groovy:35) 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:497) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:4271) at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1408) at org.codehaus.groovy.runtime.dgm$151.invoke(Unknown Source) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.akhikhl.gretty.ProductsConfigurer.configureProducts(ProductsConfigurer.groovy:34) at org.akhikhl.gretty.ProductsConfigurer$configureProducts.call(Unknown Source) at org.akhikhl.gretty.GrettyPlugin.afterProjectEvaluate(GrettyPlugin.groovy:603) at org.akhikhl.gretty.GrettyPlugin.this$2$afterProjectEvaluate(GrettyPlugin.groovy) 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:497) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:382) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at org.akhikhl.gretty.GrettyPlugin$_apply_closure62_closure104.doCall(GrettyPlugin.groovy:704) 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:497) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:292) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1015) at groovy.lang.Closure.call(Closure.java:423) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)

Paul-Shaw avatar Jul 02 '15 02:07 Paul-Shaw

I have the same issue but with little difference. I have two subprojects with own build.gradle file and gretty plugin setup.

I use:

plugins { id "org.akhikhl.gretty" version "1.2.4" }

Project A depends on project B. When A and B has gretty setup like above then everything ok, but when I am adding another plugin to project B I get an exception which explained above.

plugins { id "org.akhikhl.gretty" version "1.2.4" id "org.liquibase.gradle" version "1.1.1" }

AlekseyMko avatar Aug 12 '15 09:08 AlekseyMko

I've solved my problem.

I added

plugins { id "org.akhikhl.gretty" version "1.2.4" }

to a ROOT project. Then added

apply plugin: 'org.akhikhl.gretty'

to both A and B subprojects. Everything is ok. Then I added liquibase plugin to project B like below and got no exceptions. Everything works like a charm))

plugins { id "org.liquibase.gradle" version "1.1.1" } apply plugin: 'org.akhikhl.gretty'

AlekseyMko avatar Aug 12 '15 09:08 AlekseyMko

AlekseyMko,

I tried your solution and it won't work for me. If you put the plugin block in your root project that means the root project has the gretty plugin applied. That means that gradle appRun will try to run on your root project even though it shouldn't.

dparish avatar Sep 02 '15 14:09 dparish

If you run gradle from root module probably you should use submodule:appRun to specify what module you want to run.

AlekseyMko avatar Sep 02 '15 15:09 AlekseyMko

Hello,

Is there a solution other than applying this plugin to the root project?

isk0001y avatar Sep 04 '15 13:09 isk0001y

The same question. Do you have some estimates to fix it? It still reproduces under Gretty 1.4.0.

sergey-morenets avatar Jan 12 '17 14:01 sergey-morenets

@Paul-Shaw , @AlekseyMko , @dparish , @isk0001y , @sergey-morenets : I will see to fixing it in Gretty 1.4.2, scheduled for release on 1 of March, 2017.

akhikhl avatar Feb 03 '17 11:02 akhikhl

Was this fixed in 1.4.2? I'm still seeing the issue after upgrading to 1.4.2 but maybe i'm doing it wrong.

nhoughto avatar Jun 04 '17 23:06 nhoughto

Bump, is this fixed in 2.0.0? Doesn't appear to be.

nhoughto avatar Oct 08 '17 22:10 nhoughto

I'm getting this with Gradle 4.8 and Gretty 2.2.0 in a multi module project

mariuspaval avatar Jun 21 '18 08:06 mariuspaval

@mariuspaval do you have a sample project demonstrating this problem, and also Gretty 2.2.0 currently lives here: https://github.com/gretty-gradle-plugin/gretty .

javabrett avatar Jun 21 '18 10:06 javabrett

@javabrett I don't have a sample project. I'm migrating a bigger project to Gradle. Basically the project has 2 modules, core and api. Api has a dependency to core. In the Api project I added the configs from here http://akhikhl.github.io/gretty-doc/Getting-started.html. When I apply the gretty plugin I get the exact error in the api.

mariuspaval avatar Jun 21 '18 11:06 mariuspaval

Hi @akhikhl @javabrett I am also having the same issue. My project. Structure is I have root build.gradle and i have two sub projects. One main webApp moduleA and other Integration Jar module moduleB In root, i configured

plugins {
id "org.akhikhl.gretty" version "1.4.2"
}

and in the webapp moduleA

apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
.....
gretty {
    servletContainer = 'jetty9'
}
farm {
    webapp 'build/libs/{buildWar}-${version}.war'
    webapp project
}

And i am getting the following error.

 What went wrong:
Execution failed for task ':cima-onboarding-server:appRun'.
> No signature of method: static org.akhikhl.gretty.ServiceProtocol.createReader() is applicable for argument types: () values: []

Gradle version : 6.5 Jetty version: 9.4 Initially i got the same error as this thread posted but after lot of workarounds, i was getting a different error now. Thank you for your for your help

skantipudi1915 avatar Jun 22 '20 04:06 skantipudi1915

@siddhuKantipudi consider testing with latest https://github.com/gretty-gradle-plugin/gretty and see if this problem is still present.

javabrett avatar Jun 23 '20 03:06 javabrett