我们有一个项目正在将常春藤从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>