我们有一个项目,我们正在使用Ivy从Ant转换为Ant。它有点乱,包括Java,Coldfusion和将元素重命名为小写。
除了一个问题,我已经完成了它的工作。我需要检索所有带有嵌入式版本字符串的jar。但是,需要在没有修订号的情况下检索某些jar文件(organization =“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
文件,但其他一切(包括jboss-seam
罐子的依赖关系)与另一个常春藤模式?
答案 0 :(得分:3)
好的,我终于明白了。首先,它是正则表达式 p 映射器而不是 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>