I am not sure what the classloader business is about. I get your -e examplke running on Linux:
$ groovy -e "import groovy.xml.MarkupBuilder; import groovy.sql.Sql groovy.grape.Grape.grab(group:'com.h2database', module:'h2', version:'1.4.188') def sql = Sql.newInstance('jdbc:h2:mem:test_mem', 'sa', '', 'org.h2.Driver'); println(sql) " groovy.sql.Sql@6ba2507 On Fri, Sep 4, 2015 at 6:13 PM, Richard Heintze <sieg_hein...@yahoo.com> wrote: > > The script below works with groovy 2.3.0-beta-2 with the groovy program. I > want to move the SQL code to separate text files and execute it from (1) > "groovy -e" (2) groovy-console and (3) groovysh. > > After looking at > http://www.techper.net/2010/04/19/groovy-grape-adding-dependencies-to-root-classloader/ > here is my first attempt using Cygwin on windows 8 and groovy that is not > working: > > > groovy -e "import groovy.sql.Sql > import groovy.xml.MarkupBuilder; > import groovy.sql.Sql > > def classLoader = this.getClass().getClassLoader(); > while > (!classLoader.getClass().getName().equals('org.codehaus.groovy.tools.RootLoader')) > { > classLoader = classLoader.getParent() > } > groovy.grape.Grape.grab(group:'com.h2database', module:'h2', > version:'1.4.188') > def sql = Sql.newInstance('jdbc:h2:mem:test_mem', 'sa', '', > 'org.h2.Driver');" > Caught: java.lang.ClassNotFoundException: org.h2.Driver > java.lang.ClassNotFoundException: org.h2.Driver > at script_from_command_line.run(script_from_command_line:10) > > > As you can see, I'm trying to convert the @GrabConfig which does not seem to > work with "groovy -e". > > > Thanks > Siegfried > > > > > This works: > > import groovy.sql.Sql > import groovy.xml.MarkupBuilder > @GrabConfig(systemClassLoader=true) > @Grab(group='com.h2database', module='h2', version='1.4.188') > sqltext = [""" > create table gov_unit ( > id integer NOT NULL, > parent_id integer DEFAULT 3, > name varchar(10), > type varchar(8), > constraint gov_unit_pk > primary key (id), > constraint gov_unit_type_chk > check (type in ('County','Township','City','State')), > constraint gov_unit_loop > foreign key (parent_id) > references gov_unit > ); > insert into gov_unit values (3,null,'Michigan','State'); > insert into gov_unit values (2,3,'Alger','County'); > insert into gov_unit values (1,2,'Munising','City'); > insert into gov_unit values (4,2,'Munising','Township'); > insert into gov_unit values (5,2,'Au Train','Township'); > insert into gov_unit values (6,3,'Baraga','County'); > insert into gov_unit values (7,3,'Ontonagon','County'); > insert into gov_unit values (8,7,'Interior','Township'); > insert into gov_unit values (9,3,'Dickinson','County'); > insert into gov_unit values (10,3,'Gogebic','County'); > insert into gov_unit values (11,3,'Delta','County'); > insert into gov_unit values (12,11,'Masonville','Township'); > """,""" > WITH RECURSIVE gov (depth, id, parent_id, name, type) AS( > SELECT 1 AS depth, parent.* FROM gov_unit parent WHERE parent.parent_id > IS NULL > UNION ALL > SELECT parent.depth+1 AS depth, child.* FROM gov parent, gov_unit child > WHERE child.parent_id = parent.id > ) > SELECT * FROM gov ; > """] > > def sql = Sql.newInstance("jdbc:h2:mem:test_mem", "sa", "", "org.h2.Driver") > sql.execute sqltext[0] > > def xml = new groovy.xml.MarkupBuilder(new > FileWriter(java.io.FileDescriptor.out)) > > xml.table (name:"gov_unit") { > sql.rows(sqltext[1]).each{ row-> > xml.gov_unit ( > row > ) } > }