Quiero usar un método definido en la biblioteca apache.common.net en mi Groovy-Script.
Primero lo descargué y lo incluí en mi configuración:
this.class.classLoader.rootLoader.addURL(new URL("file:///${currentDir}/lib/commons-net-3.3.jar"))
Luego trato de usarlo en mi guión groovy como este (para dejarlo claro: la importación pimpim. * Importa también el classLoader arriba):
import pimpim.*
import org.apache.commons.net.ftp.*
def pm = PM.getInstance("test")
public class FileUploadDemo {
public static void main(String[] args) {
FTPClient client = new FTPClient();
También probé varias anotaciones para la "importación" como
import org.apache.commons.net.ftp.FTPClient
Pero sigo recibiendo este error:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Y:pimconsolescriptsftp.gy: 11: unable to resolve class FTPClient
@ line 11, column 15.
FTPClient client = new FTPClient();
¿Qué me perdí? Lo siento, todavía soy nuevo en groovy: /
Respuestas
2 para la respuesta № 1Por lo tanto, puede agregarlo a la ruta de clase cuando inicie su script;
groovy -cp .;lib/commons-net-3.3.jar ftp.gy
O bien, puede agregar un @Grab
anotación en su script, y Groovy descargará la dependencia y la agregará a la ruta de clases antes de ejecutarla (pero esto no puede funcionar si sus scripts se ejecutan en un cuadro sin acceso a Maven);
@Grab("commons-net:commons-net:3.3")
import org.apache.commons.net.ftp.*
...rest of your script...
O la ruta de hacking classpath que tienes arriba debería trabaja si lo intentas
this.getClass().classLoader.rootLoader.addURL(new File("lib/commons-net-3.3.jar").toURL())