常春藤需要按组织检索文件

时间:2013-07-29 22:07:30

标签: ant ivy

我们有一个项目,我们正在使用Ivy从Ant转换为Ant。它有点乱,包括Java,Coldfusion和将元素重命名为小写。

除了一个问题,我已经完成了它的工作。我需要检索所有带有嵌入式版本字符串的jar。但是,需要在没有修订号的情况下检索某些jar文件(organization =“org.jboss.seam”)。也就是说,我需要

commons-beanutil-1.6.jar (or whatever it is)

jboss-seam-io.jar

我尝试使用<include><exclude>

<ivy:retrieve log="${ivy.log}"
    pattern="${lib.dir}/[conf]/[artifact]-[revision].[ext]"
    conf="*">
    <exclude org="org.jboss.seam"/>
</ivy:retrieve>
<ivy:retrieve log="${ivy.log}"
    pattern="${lib.dir}/[conf]/[artifact].[ext]"
    conf="*">
    <include org="org.jboss.seam"/>
</ivy:retrieve>

<ivy:retrieve>不包含和排除。我认为有可能使用映射器,但常春藤文档非常稀疏。

任何人都有任何想法如何使用一个常春藤模式检索jboss-seam文件,但其他一切(包括jboss-seam罐子的依赖关系)与另一个常春藤模式?

1 个答案:

答案 0 :(得分:3)

好的,我终于明白了。首先,它是正则表达式 p 映射器而不是 regexmapper 。然后,我发现我必须将完整的路径名称放入,并执行两次映射,一次用于jboss-seam的东西,一次用于其他每一个:

<ivy:retrieve log="${ivy.log}"
    pattern="${lib.dir}/[conf]/[artifact]-[revision].[ext]"
    conf="*">
    <firstmatchmapper>
        <regexpmapper from="${lib.dir}/([^/]*)/(jboss-seam.*)-([0-9].*)\.jar"
             to="${lib.dir}/\1/\2.jar"/>
        <regexpmapper  from="(.*)"
             to="\1"/>
    </firstmatchmapper>
</ivy:retrieve>