我试图将文件集传递给macrodef,并让宏生成一个逗号分隔的类列表。此外,我还需要更改列表以包含java包&类名,而不是用"/"分隔的名称。
我们正在使用Ant, OSGi和bind,我最终要做的是在Manifest中创建一个包含文件集每个条目的完全限定类名的条目。
最终目标示例:
Manifest-Entry: org.foo.bar.ClassOne, org.foo.bar.ClassTo
您可以使用带有嵌套映射器的Ant pathconvert
任务来完成此操作,例如:
<property name="classes" location="classes" />
<fileset dir="${classes}" id="classes" />
<pathconvert dirsep="." refid="classes" property="manifest.entry" pathsep=", ">
<mapper type="regexp" from="${classes}/(.*).class" to="1" />
</pathconvert>
<echo message="Manifest-Entry: ${manifest.entry}" />
由于您正在使用bind,您也可以尝试在bnd
文件中使用${classes}
宏。