This code works in groovy 2, but not in groovy 3.
@Grab(group='org.antlr', module='ST4', version='4.3.1')
import org.stringtemplate.v4.*
ST hello = new ST("Hello, <name>");
hello.add("name", "World");
println(hello.render());
Groovy 2:
$ groovy --version
Groovy Version: 2.5.14 JVM: 11.0.9.1 Vendor: AdoptOpenJDK OS: Linux
$ groovy st.groovy
Hello, World
Groovy 3:
$ groovy --version
Groovy Version: 3.0.5 JVM: 11.0.9.1 Vendor: AdoptOpenJDK OS: Linux
$ groovy st.groovy
Caught: java.lang.NoClassDefFoundError: org/antlr/runtime/Token
java.lang.NoClassDefFoundError: org/antlr/runtime/Token
at
org.stringtemplate.v4.ST.<init>(ST.java:159)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at st.run(st.groovy:4)
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)
Caused by: java.lang.ClassNotFoundException: org.antlr.runtime.Token
... 8 more
I don't understand why. Can someone help me please?
Thanks,
Martin