grooviger Skript-Klassenpfad

Ich schreibe ein Skript in Groovy und möchte, dass jemand es einfach durch Ausführen ausführen kann./myscript.groovy. Für dieses Skript ist jedoch eine Bibliothek eines Drittanbieters (MySQL JDBC) erforderlich, und ich kenne keine Möglichkeit, diese dem Skript zur Verfügung zu stellen, außer über a-classpath oder-cp Argument, z.B.

`./monitor-vouchers.groovy -cp /path/to/mysql-lib.jar`

Aus Gründen, auf die ich hier nicht näher eingehen möchte, kann der JAR-Speicherort des Skripts nicht mit dem Argument -classpath / -cp angegeben werden. Kann ich die JAR auf irgendeine Weise aus dem Skript selbst heraus laden? Ich habe versucht mit@Grab

import groovy.sql.Sql


@Grab(group='mysql', module='mysql-connector-java', version='5.1.19')
def getConnection() {
    def dbUrl = 'jdbc:mysql://database1.c5vveqm7rqgx.eu-west-1.rds.amazonaws.com:3306/vouchers_prod'
    def dbUser = 'pucaroot'
    def dbPassword = 'password'
    def driverClass = "com.mysql.jdbc.Driver"

    return Sql.newInstance(dbUrl, dbUser, dbPassword, driverClass)
}

getConnection().class

Dies führt jedoch zu folgendem Fehler:

Caught: java.sql.SQLException: No suitable driver
java.sql.SQLException: No suitable driver
        at monitor-vouchers.getConnection(monitor-vouchers.groovy:13)
        at monitor-vouchers.run(monitor-vouchers.groovy:17)

Gibt es eine Möglichkeit, wie ich dieses Skript mit nur ausführen kann?./monitor-vouchers.groovy

Antworten auf die Frage(2)

Ihre Antwort auf die Frage