【问题标题】:How to specify lib directory for ant task?如何为ant任务指定lib目录?
【发布时间】:2016-08-08 15:49:12
【问题描述】:

我目前正在我的构建中运行一个 exec 任务,如下所示:

<target name="bar">
  <exec executable="ant">
    <arg value="-f"/>
    <arg value="/path/to/my/build.xml"/>
    <arg value="-lib"/>
    <arg value="/path/to/my/libs"/>
  </exec>
</target>

我不是很喜欢,想把exec任务换成ant任务:

<target name="bar">
  <ant antfile="/path/to/my/build.xml"/>
</target>

但是,在这种情况下,我不知道如何指定 lib 目录。这有可能吗?

【问题讨论】:

  • 你真正的目标是什么? ant 任务是 ant 的 GOTO。它几乎总是会把你弄得一团糟。

标签: ant


【解决方案1】:

通过以这种方式从 ANT 内部启动 ANT,您想达到什么目的?

例如,如果您需要自定义 ANT 扩展,可以在运行时在代码中指定这些 jar 的路径,如下所示:

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
  <classpath>
    <pathelement location="${lib.dir}/ant-contrib-0.3.jar"/>
  </classpath>
</taskdef>

再次更好的是,您可以集成像 Apache ivy 这样的依赖管理系统来管理 3rd 方 jar 依赖。

【讨论】:

    【解决方案2】:

    您可以在 ant 脚本中调用 ant 脚本,如下所示。 如果您使用属性 inheritrefs="true",则在父构建脚本中设置的任何 Id 也将传递给子构建脚本。

    例如:

    <ant antfile="subbuild.xml" inheritrefs="true"/>
    

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多