[ 
https://issues.apache.org/jira/browse/GROOVY-10475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17489921#comment-17489921
 ] 

Olga Lobanova commented on GROOVY-10475:
----------------------------------------

Hello Paul.

The {{maven-shade-plugin}} I use in this example only. Indeed in our project we 
use the {{maven-assembly-plugin}} to build the jar together with all 
dependencies. In the {{groovy-console-test}} example the assembly plugin is 
also present and builds the {{my-app-1.0-SNAPSHOT-jar-with-dependencies.jar}}

But the same exception comes if I execute the main method using this jar:
{noformat}
java -cp ./target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar 
com.mycompany.app.App
{noformat}
Earlier we have used the Java 8 and Groovy 2.4.17 in our project, there were no 
errors when running the groovy console. Current we try to migrate to Java 11 
and Groovy 3(or 4) and unfortunately can no longer run the console.

Allegedly the error was fixed (see GROOVY-8253), but now the 
{{assemble.gradle}} file no longer exists in master Branch on 
[https://github.com/apache/groovy]

Do You intend to fix this error in a future Groovy release or do You no longer 
support the approach like in 2.4 timeframes and we have to take care of it 
ourselves (Your suggestion in the previous comment)? Or in which other way we 
can integrate the groovy console into our project using Maven and the current 
Groovy version?

Best regards,
Olga

> Groovy console fails to launch if Jar built by Maven
> ----------------------------------------------------
>
>                 Key: GROOVY-10475
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10475
>             Project: Groovy
>          Issue Type: Bug
>          Components: Groovy Console
>    Affects Versions: 3.0.9, 4.0.0
>         Environment: Ubuntu 18.04/20.04, Debian 10
> OpenJDK 11.0.13
> Groovy 3.0.9/4.0.0
> Maven 3.6.0
>            Reporter: Olga Lobanova
>            Priority: Major
>         Attachments: groovy-console-test.tgz
>
>
> The same error like in GROOVY-8253 still exists for Groovy 3(or 4) and Java 
> 11 if Jar with main method is build by Maven.
> Use to reproduce the attached project  [^groovy-console-test.tgz]
> Execute via:
> {noformat}
> mvn package
> java -jar ./target/my-app-1.0-SNAPSHOT.jar
> {noformat}
> The exception stacktrace:
> {noformat}
> Exception in thread "main" groovy.lang.MissingMethodException: No signature 
> of method: javax.swing.JMenu.setMnemonic() is applicable for argument types: 
> (String) values: [F]
> Possible solutions: setMnemonic(char), setMnemonic(int), getMnemonic()
>       at 
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
>       at 
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:78)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:82)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
>       at 
> groovy.console.ui.view.BasicMenuBar$_run_closure1.doCall(BasicMenuBar.groovy:22)
>       at 
> groovy.console.ui.view.BasicMenuBar$_run_closure1.doCall(BasicMenuBar.groovy)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1009)
>       at groovy.lang.Closure.call(Closure.java:418)
>       at groovy.lang.Closure.call(Closure.java:412)
>       at 
> groovy.util.FactoryBuilderSupport.dispatchNodeCall(FactoryBuilderSupport.java:892)
>       at 
> groovy.util.FactoryBuilderSupport.doInvokeMethod(FactoryBuilderSupport.java:784)
>       at 
> groovy.util.FactoryBuilderSupport.invokeMethod(FactoryBuilderSupport.java:503)
>       at 
> groovy.util.FactoryInterceptorMetaClass.invokeMethod(FactoryBuilderSupport.java:1342)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:75)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:50)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:85)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
>       at groovy.console.ui.view.BasicMenuBar.run(BasicMenuBar.groovy:21)
>       at 
> groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1174)
>       at 
> groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1157)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
>       at groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1369)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1103)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1009)
>       at 
> org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:610)
>       at 
> org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:593)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:405)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:328)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:63)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
>       at 
> groovy.console.ui.Console$__clinit__closure30.doCall(Console.groovy:409)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1009)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:39)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
>       at 
> groovy.console.ui.ConsoleView$_run_closure1.doCall(ConsoleView.groovy:65)
>       at 
> groovy.console.ui.ConsoleView$_run_closure1.doCall(ConsoleView.groovy)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1009)
>       at groovy.lang.Closure.call(Closure.java:418)
>       at groovy.lang.Closure.call(Closure.java:412)
>       at 
> groovy.util.FactoryBuilderSupport.dispatchNodeCall(FactoryBuilderSupport.java:892)
>       at 
> groovy.util.FactoryBuilderSupport.doInvokeMethod(FactoryBuilderSupport.java:784)
>       at 
> groovy.util.FactoryBuilderSupport.invokeMethod(FactoryBuilderSupport.java:503)
>       at 
> groovy.util.FactoryInterceptorMetaClass.invokeMethod(FactoryBuilderSupport.java:1342)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:75)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:50)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194)
>       at groovy.console.ui.ConsoleView.run(ConsoleView.groovy:62)
>       at 
> groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1174)
>       at 
> groovy.util.FactoryBuilderSupport.build(FactoryBuilderSupport.java:1157)
>       at groovy.util.FactoryBuilderSupport$build$4.call(Unknown Source)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:46)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
>       at groovy.console.ui.Console.run(Console.groovy:440)
>       at groovy.console.ui.Console$run$0.callCurrent(Unknown Source)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:50)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
>       at groovy.console.ui.Console.run(Console.groovy:414)
>       at com.mycompany.app.App.main(App.java:11)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to