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

除了一个问题,我已经开始工作了。我需要检索所有带有嵌入式版本字符串的jar。但是,某些jar文件(organisation =“ 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>不包含和排除。我认为使用映射器是可能的,但是Ivy文档非常稀疏。

任何人都有任何想法如何使用一种Ivy模式检索jboss-seam文件,但是其他一切(包括jboss-seam jars的依赖项)是否具有另一种Ivy模式?

最佳答案

好吧,我终于明白了。首先,它是regexpmapper而不是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>

07-24 19:13
查看更多