Ant ::根据传递的参数更改目标的“depends”属性

时间:2013-09-21 18:48:04

标签: ant ivy

我将AntIvy一起使用,因此我的compile任务如下:

<target name="compile" depends="prepare, retrieve" ..

其中retrieve任务用于解析和获取Ivy依赖项。因此,由于我的compile任务取决于retrieve任务,因此每次编译都会触发Ivy依赖项的解析。由于run任务取决于run,所以compile同上。

这会浪费时间,所以我希望dry-compile不依赖于Ivy任务。

用例是如果没有Ivy依赖项发生更改,我将能够执行ant dry-compile甚至ant dry-run而不会触发Ivy解析功能。

有没有办法在Ant中执行此操作而无需复制粘贴目标以创建具有不同depends属性的变体?

我的 ivy.xml 文件是:

<ivy-module version="2.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
  <info organisation="foo" module="bar" status="integration"/>
  <dependencies>
      <dependency org="org.apache.commons" name="commons-lang3" rev="3.1"/>
  </dependencies>
</ivy-module>

和Ant resolve目标(目标compile所依赖的)是:

<target name="test-ivy" description="Test ivy installation">
    <ivy:settings />
</target>

<target name="resolve" depends="test-ivy">
    <ivy:resolve/>
    <ivy:retrieve sync="true" pattern="${ivylibs.dir}/[artifact]-[revision](-[classifier]).[ext]"/> 
</target>

1 个答案:

答案 0 :(得分:0)

更简单的选择是关闭基于网络的分辨率并强制常春藤使用缓存数据。

有关详细信息,请参阅以下答案: