2014-01-08 41 views
0

我有一个ivy:resolve任务作为我的ant脚本的一部分。我还有一个script任务,它执行一些处理并生成零个或多个模块描述符,这些描述符需要从ivy:resolve中排除。从脚本任务添加子元素

所以我需要一种方法为script任务生成一些exclude元素,并将它们作为孩子添加到ivy:resolve任务,所以最终它结束了:

<ivy:resolve file="${ivy.file.path}"> 
    <exclude org="generated" module="by a script task" /> 
    <exclude org="generated" module="by a script task" /> 
    <exclude org="generated" module="by a script task" /> 
</ivy:resolve /> 

回答

0

你不使用ANT属性?

<target name="init"> 
    <script language="javascript"><![CDATA[ 
     project.setProperty("org.to.exclude", "log4j"); 
     project.setProperty("module.to.exclude", "log4j"); 
    ]]></script> 
    </target> 

    <target name="resolve" depends="init"> 
    <ivy:resolve> 
     <dependency org="org.apache.cxf" name="cxf-api" rev="2.7.8"/> 
     <exclude org="${org.to.exclude}" module="${module.to.exclude}" /> 
    </ivy:resolve> 
    </target> 
+0

这只有一个排除。我如何获得一个可变数字? – ICR

+0

@ICR听起来像你需要从脚本内运行ivy然后。你能否提供你想要做的更多细节。通常,使用ivy中的配置来完成创建罐子的逻辑分组。此外,这里是另一个问题,其中文件是基于组织分区:http://stackoverflow.com/questions/15131012/split-organization-name-into-nested-folders-using-ivyretrieve/ –

+0

有一些依赖关系,通常他们来自存储库,但偶尔我们需要处理并以不同的方式将它们包含在构建中。我希望能够指定哪些属性文件位于属性文件中,然后将它们从常青藤中排除:自行解决并处理它们。 – ICR