Groovy - класс не найден

Следующий Groovy script выходит из строя с исключением java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.

@Grapes([
    @Grab('mysql:mysql-connector-java:5.1.25')
])

import groovy.sql.Sql

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/books', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
);

Я просмотрел файл JAR, хранящийся в C:\Users\Dusan\.groovy\grapes\mysql\mysql-connector-java\jars\mysql-connector-java-5.1.25.jar, и он содержит класс драйвера.

Что может быть неправильным?

Ответ 1

Вам нужно:

@GrabConfig(systemClassLoader = true)

После вашего @Grab и просто:

@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
import groovy.sql.Sql

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/books', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
)

Должно

Ответ 2

Как вы используете его в groovysh?

В соответствии с документом Grab используется в оболочке таким образом

groovy.grape.Grape.grab([group:'mysql:mysql-connector-java:5.1.25'])

Я не нашел эквивалент для @GrabConfig. Это просто не работает внутри groovysh.