ant - Ivy 需要按组织检索文件

标签 ant ivy

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

任何人都知道如何检索 jboss-seam文件具有一种 Ivy 模式,但其他所有内容(包括 jboss-seam jar 的依赖项)具有另一种 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>

关于ant - Ivy 需要按组织检索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17935061/

相关文章:

ant - 如何组装多项目 Ant 构建系统

java - Ant 字符串函数?

jboss - 如何将 JBossAS 5 与 Apache Ivy 一起使用?

maven - 如何在离线模式下使用 SBT 进行构建

ant - Liquibase 作为 ant 任务 : relative path to changelogs. 找不到 xml

scala - sbt 发布本地 : Undefined resolver 'local'

Gradle:我如何按模式包含 Ivy 工件?

unix - 如何使用文件集中的 apache ant 创建多个新的符号链接(symbolic link)?

android - 如何使用 ant 构建带有外部库的 android 应用程序?

tomcat - 使用 ant : how to know when the application is reloaded? 部署到 tomcat