Начиная с Ant 1.8.0, существует новая коллекция ресурсов - mappedresources
, которую можно использовать вместо элемента war
task lib
.
Итак,Задача может выглядеть следующим образом (в значительной степени прямо из документов):
<war ... >
<mappedresources>
<restrict>
<path refid="my.classpath"/>
<type type="file"/>
</restrict>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="WEB-INF/lib/*"/>
</chainedmapper>
</mappedresources>
</war>
Эта функция была добавлена, чтобы разрешить длительный запрос функции , чтобы сделать задачу выравнивать банки при развертывании вWEB-INF/lib
.
предыдущий ответ:
Хотя вы не можете легко преобразовать путь к набору файлов с помощью vanilla Ant, вы можете пойти другим путем.Поэтому одним из вариантов будет определение ваших jar-файлов в наборе файлов и вывод из него пути.Возможно, что-то вроде этого:
<fileset id="my.fileset" dir="${basedir}">
<include name="folderA/subFolderA/1.0/A.jar"/>
<include name="folderC/subFolderB/1.0/B.jar"/>
<include name="folderF/subFolderZ/2.0/Z.jar"/>
<include name="moreFolderF/subFolderZ/2.0/additionFile.jar"/>
<include name="moreFolderF/subFolderZ/2.0/additionRuntimeFile.jar"/>
</fileset>
<path id="my.classpath">
<fileset refid="my.fileset" />
</path>
<!-- javac stays the same -->
<war ...>
<lib refid="my.fileset" />
</war>
Другая возможность заключается в использовании ant-contrib pathtofileset
task .