如何在ant构建文件中指定JAR的路径?

Rav*_*avi 8 ant build.xml jar build jsch

我执行很多scpsshexec从一个Ant构建脚本和其他远程命令.如果jsch.jar不在ant lib目录中,这些命令不起作用.为了使它工作,我将JAR复制到ant lib目录中,但这不是一个好的解决方案,因为任何想要运行脚本的人都必须做同样的事情.要从Teamcity运行ant目标,我们必须显式设置lib文件的路径.

有没有办法可以在ant build XML本身中指定JAR的路径?

Rav*_*avi 5

谢谢大家的回答.我设法让它与classloader任务一起工作.这就是我做的.

<project basedir="." >
  <property environment="env"/>

  <taskdef resource="net/jtools/classloadertask/antlib.xml">
    <classpath>
      <fileset dir="${basedir}/lib" includes="ant-classloader*.jar"/>
    </classpath>
  </taskdef>

  <!--Add JSCH jar to the classpath-->
  <classloader loader="system">
    <classpath>
      <fileset dir="${basedir}/lib" includes="jsch*.jar"/>
      </classpath>
  </classloader>

  <target name="Test">
      <scp todir="user1:pass1@server1:/tmp" trust="true" >
        <fileset dir="dir1">
          <include name="test.txt" />
        </fileset>
      </scp>
   </target>
</project>
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的那样,我没有为我的"测试"目标提供任何依赖目标,它只是起作用.它使用classloader,它将jsch.jar附加到系统类加载器.