Tôi đang viết một tập lệnh trong Groovy và tôi muốn ai đó có thể thực thi nó đơn giản bằng cách chạy ./myscript.groovy
. Tuy nhiên, tập lệnh này yêu cầu thư viện của bên thứ ba (MySQL JDBC) và tôi không biết cách nào để cung cấp tệp này cho tập lệnh khác ngoài thông qua đối số -classpath
hoặc -cp
, ví dụ:đường dẫn tập lệnh groovy
`./monitor-vouchers.groovy -cp /path/to/mysql-lib.jar`
Vì lý do tôi không truy cập vào đây, không thể cung cấp vị trí JAR cho tập lệnh bằng đối số -classpath/-cp. Có cách nào để tôi có thể tải JAR từ bên trong tập lệnh không? Tôi đã cố gắng sử dụng @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
Nhưng điều này gây ra các lỗi sau:
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)
Có cách nào tôi có thể thực hiện kịch bản này chỉ sử dụng ./monitor-vouchers.groovy
Nếu bạn đã bao giờ muốn nhìn thấy những gì có trong classpath của bạn, hãy chạy này 'this.class.classLoader.rootLoader.URLs.each { println it} '--cho tôi, có vẻ như ~/.groovy/lib không có trong đó. – MarkHu