如何以无配置方式将可选任务sshexec加载到Ant中?

我使用的是sshexec,它取决于jsch-0.1.48.jar。 我不能把它放到ant / lib目录中,因为其他希望使用相同构建脚本的用户必须先在他们的机器上进行配置才能这样做。

我想要做的是能够引用jsch-0.1.48.jar作为项目的一部分。 目前,我把它放在project / libs目录中,我正在尝试这样的事情:

         

但那不起作用:

 C:\dev\trunk\project:>ant sshcmd Buildfile: C:\dev\trunk\project\build.xml BUILD FAILED C:\dev\trunk\project\build.xml:275: taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/Logger using the classloader AntClassLoader[C:\dev\trunk\project\lib\jsch-0.1.48.jar] Total time: 0 seconds 

sshexec任务内置于ANT中,您无需调用taskdef操作即可使用它。 所有缺少的都是jsch jar。

这可以使用bootstrap目标安装,如下所示(来自Maven Central ):

     

此目标只需运行一次,之后ANT sshexec任务将在开发人员的PC上按预期工作。

更新

如果您不想下载jar其他机制来从命令行传递ANT库的位置,如下所示:

 ant -lib /path/to/project/lib/dir ... 

有关ANT库管理的更多详细信息,请参阅ANT手册

jsch jar与我的项目一起打包。 所以我没有下载它,而是将它复制到ant库中。 构建将在第一次运行时失败,这对我的目的来说很好。 它将第二次成功,因为jar将在库中并将在开始时加载。