3

我们有一个项目,我们正在使用 Ivy 从 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>不包含和排除。我认为映射器可能是可能的,但常春藤文档非常稀疏。

任何人都知道如何jboss-seam使用一种 Ivy 模式检索文件,但其他所有内容(包括jboss-seamjar 的依赖项)都使用另一种 Ivy 模式?

4

1 回答 1

3

好吧,我终于想通了。首先,它是 regex p mapper 而不是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>
于 2013-07-29T22:48:25.917 回答