我们有一个项目,我们正在使用 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/