build.xml contiene tareas <scp>
y <sshexec>
, así que proporciono jsch.jar y otras bibliotecas en el mismo directorio junto con build.xml.¿Hay alguna forma de especificar la ubicación de un jsch.jar local desde dentro de build.xml?
La siguiente taskdef:
<taskdef name="scp"
classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp"
classpath="WebContent/WEB-INF/lib/jsch-0.1.43.jar" />
lanza un error
A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.Scp
cannot be found: com/jcraft/jsch/UserInfo
No puedo modificar la instalación Ant estándar (por ejemplo, poner en jsch.jar hormiga lib o eliminar hormigas jsch. jar), o agregue indicadores de línea de comando, o modifique las variables de entorno del sistema , etc .: el script debe ejecutarse con Ant predeterminado en diferentes sistemas.
estoy realmente volver a colocar la pregunta originalmente pedido aquí: http://ant.1045680.n5.nabble.com/specifying-location-of-an-external-library-within-build-xml-td1344969.html
pero no pudieron obtener la respuesta sobre el cargador de clases para trabajar.
Parece que este es un problema común y creo que esta es la mejor solución, pero en lugar de en su defecto, voy a seguir adelante y eliminar el directorio/lib/ant -jsch.jar. En caso de que ayude a otros, Paulo da una explicación del problema central en su OE [respuesta a una pregunta relacionada con el CPS] (http://stackoverflow.com/questions/5796587/problems-with-ant-optional-tasks-sshexec- and-scp-classpath-issue) y [el mismo problema ocurre con junit y se explica aquí] (http://ant.apache.org/faq.html#delegating-classloader) – gMale
Pero esto requiere la modificación de la instalación estándar de Ant. . –
¡He estado lidiando con este problema por días y esta solución es la única que podría ponerme a trabajar! –