Why does Geb Groovy script fail to download Geb dependencies?

70 views
Skip to first unread message

Derek Mahar

unread,
Nov 15, 2017, 4:59:08 PM11/15/17
to Geb User Mailing List
Why does the following basic Geb Groovy script fail to download the Geb dependencies?

derek@derek-lubuntu:~/Projects/geb$ groovy --version
Groovy Version: 2.4.5 JVM: 1.8.0_151 Vendor: Oracle Corporation OS: Linux

derek@derek-lubuntu:~/Projects/geb$ cat startGeb.groovy 
@Grapes([
    @Grab("org.gebish:geb-core:2.0"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:3.6.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:3.6.0")
])
import geb.Browser

derek@derek-lubuntu:~/Projects/geb$ groovy --debug -Dgroovy.grape.report.downloads=true startGeb.groovy
Resolving dependency: org.seleniumhq.selenium#selenium-support;3.6.0 {default=[default]}
Resolving dependency: org.seleniumhq.selenium#selenium-firefox-driver;3.6.0 {default=[default]}
Resolving dependency: org.gebish#geb-core;2.0 {default=[default]}
Preparing to download artifact org.seleniumhq.selenium#selenium-support;3.6.0!selenium-support.jar
Preparing to download artifact org.seleniumhq.selenium#selenium-firefox-driver;3.6.0!selenium-firefox-driver.jar
Preparing to download artifact org.gebish#geb-core;2.0!geb-core.jar
Preparing to download artifact org.seleniumhq.selenium#selenium-api;3.6.0!selenium-api.jar
Preparing to download artifact org.seleniumhq.selenium#selenium-remote-driver;3.6.0!selenium-remote-driver.jar
Preparing to download artifact net.bytebuddy#byte-buddy;1.7.5!byte-buddy.jar
Preparing to download artifact org.apache.commons#commons-exec;1.3!commons-exec.jar
Preparing to download artifact commons-codec#commons-codec;1.10!commons-codec.jar
Preparing to download artifact commons-logging#commons-logging;1.2!commons-logging.jar
Preparing to download artifact com.google.code.gson#gson;2.8.0!gson.jar
Preparing to download artifact com.google.guava#guava;23.0!guava.jar
Preparing to download artifact org.apache.httpcomponents#httpclient;4.5.3!httpclient.jar
Preparing to download artifact org.apache.httpcomponents#httpcore;4.4.6!httpcore.jar
Preparing to download artifact net.java.dev.jna#jna;4.1.0!jna.jar
Preparing to download artifact net.java.dev.jna#jna-platform;4.1.0!jna-platform.jar
Preparing to download artifact com.google.code.findbugs#jsr305;1.3.9!jsr305.jar
Preparing to download artifact com.google.errorprone#error_prone_annotations;2.0.18!error_prone_annotations.jar
Preparing to download artifact com.google.j2objc#j2objc-annotations;1.1!j2objc-annotations.jar
Preparing to download artifact org.codehaus.mojo#animal-sniffer-annotations;1.14!animal-sniffer-annotations.jar
Preparing to download artifact org.codehaus.groovy#groovy-all;2.4.7!groovy-all.jar
Preparing to download artifact org.gebish#geb-ast;2.0!geb-ast.jar
Preparing to download artifact org.gebish#geb-waiting;2.0!geb-waiting.jar
Preparing to download artifact org.jodd#jodd-lagarto;3.7.1!jodd-lagarto.jar
Preparing to download artifact org.gebish#geb-implicit-assertions;2.0!geb-implicit-assertions.jar
Preparing to download artifact org.gebish#geb-exceptions;2.0!geb-exceptions.jar
Preparing to download artifact org.jodd#jodd-core;3.7.1!jodd-core.jar
Preparing to download artifact org.jodd#jodd-log;3.7.1!jodd-log.jar
Caught: BUG! exception in phase 'conversion' in source unit '/home/derek/Projects/geb/startGeb.groovy' # Licensed to the Apache Software Foundation (ASF) under one or more
BUG! exception in phase 'conversion' in source unit '/home/derek/Projects/geb/startGeb.groovy' # Licensed to the Apache Software Foundation (ASF) under one or more
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:935)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:694)
at groovy.lang.GroovyShell.run(GroovyShell.java:523)
at groovy.lang.GroovyShell.run(GroovyShell.java:513)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:652)
at groovy.ui.GroovyMain.run(GroovyMain.java:384)
at groovy.ui.GroovyMain.process(GroovyMain.java:370)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
at groovy.ui.GroovyMain.main(GroovyMain.java:109)
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.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:677)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:787)
at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:775)
at groovy.lang.GroovyClassLoader$loadClass$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at groovy.grape.GrapeIvy$_processRunners_closure4.doCall(GrapeIvy.groovy:341)
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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019)
at groovy.lang.Closure.call(Closure.java:426)
at groovy.lang.Closure.call(Closure.java:442)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056)
at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at groovy.grape.GrapeIvy.processRunners(GrapeIvy.groovy:340)
at groovy.grape.GrapeIvy$processRunners$3.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
at groovy.grape.GrapeIvy.processOtherServices(GrapeIvy.groovy:325)
at groovy.grape.GrapeIvy$processOtherServices$2.callCurrent(Unknown Source)
at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:266)
at groovy.grape.Grape.grab(Grape.java:167)
at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:378)
at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:321)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931)
... 19 more

Thank you for your help,

Derek

Alexander Kriegisch

unread,
Nov 15, 2017, 6:10:25 PM11/15/17
to geb-...@googlegroups.com
Do you happen to think that '#' starts a comment in Groovy? Maybe you want to use '//' instead.

-- 
Alexander Kriegisch

--
You received this message because you are subscribed to the Google Groups "Geb User Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to geb-user+u...@googlegroups.com.
To post to this group, send email to geb-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/geb-user/b493effb-c3bb-4503-a4cb-eac9d33d1e53%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Derek Mahar

unread,
Nov 16, 2017, 10:03:04 AM11/16/17
to Geb User Mailing List
Alexander:

Thank you for your reply.

My script doesn't contain any comments:

derek@derek-lubuntu:~/Projects/geb$ cat startGeb.groovy 
@Grapes([
    @Grab("org.gebish:geb-core:2.0"),
    @Grab("org.seleniumhq.selenium:selenium-firefox-driver:3.6.0"),
    @Grab("org.seleniumhq.selenium:selenium-support:3.6.0")
])
import geb.Browser

I copied this script exactly as it appears in the Geb manual at http://www.gebish.org/manual/current/#installation-usage.

The exception suggests that Groovy or Grapes is interpreting the comment "# Licensed to the Apache Software Foundation (ASF) under one or more" in one of the dependencies (my guess is artifact org.jodd#jodd-log;3.7.1!jodd-log.jar or the artifact that would directly follow) as a class:

Caught: BUG! exception in phase 'conversion' in source unit '/home/derek/Projects/geb/startGeb.groovy' # Licensed to the Apache Software Foundation (ASF) under one or more
BUG! exception in phase 'conversion' in source unit '/home/derek/Projects/geb/startGeb.groovy' # Licensed to the Apache Software Foundation (ASF) under one or more
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:935)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:593)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:694)
at groovy.lang.GroovyShell.run(GroovyShell.java:523)
at groovy.lang.GroovyShell.run(GroovyShell.java:513)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:652)
at groovy.ui.GroovyMain.run(GroovyMain.java:384)
at groovy.ui.GroovyMain.process(GroovyMain.java:370)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
at groovy.ui.GroovyMain.main(GroovyMain.java:109)
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.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) under one or more

Derek

Alexander Kriegisch

unread,
Nov 16, 2017, 11:06:10 AM11/16/17
to geb-...@googlegroups.com
I see. I am nowhere near a PC with Groovy compiler. I was just interpreting the log output, making an educated guess. Sorry it was not the right one.
-- 
Alexander Kriegisch

Derek Mahar

unread,
Nov 16, 2017, 11:08:06 AM11/16/17
to Geb User Mailing List
Michael M also encountered this issue in https://groups.google.com/d/msg/geb-user/dZNBfzBels4/hoNQC4edFAAJ which led him to https://issues.apache.org/jira/browse/GROOVY-7613 which was apparently Groovy 2.4.7 resolved in https://issues.apache.org/jira/browse/GROOVY-7833.  I may have encountered the same issue because I'm running Groovy 2.4.5.  I will install Groovy 2.4.7 or later and see if Groovy no longer reports the error.

Derek Mahar

unread,
Nov 16, 2017, 11:12:42 AM11/16/17
to Geb User Mailing List
Groovy 2.4.12 which I installed using SDKMAN (http://sdkman.io/) resolved the problem:

derek@derek-lubuntu:~/Projects/geb$ groovy --version
Groovy Version: 2.4.12 JVM: 1.8.0_151 Vendor: Oracle Corporation OS: Linux
derek@derek-lubuntu:~/Projects/geb$

Derek

Derek Mahar

unread,
Nov 16, 2017, 4:06:06 PM11/16/17
to Geb User Mailing List
In retrospect, I think Grapes did manage to successfully retrieve the dependencies, but Groovy 2.4.5 failed to run the Geb script.
Reply all
Reply to author
Forward
0 new messages