Удалить maven версии ярлыки с муравьем - PullRequest
2 голосов
/ 14 ноября 2011

В моей сборке ant я использую maven-ant-tasks для извлечения зависимостей для моего проекта.Сборка относительно сложна и перемещает / манипулирует различными артефактами в разных местах.Чтобы сделать мою жизнь проще, я хочу удалить ярлыки версий maven из моих зависимостей в моем скрипте ant.Документация maven-ant говорит, что мы можем использовать свойство versionId задачи зависимостей, чтобы выполнить это, но я не уверен, как это сделать в ant.

Соответствующая часть моей сборки

 <artifact:pom id="mypom" file="pom.xml"/>
 <artifact:dependencies pathId="dep.classpath" filesetId="dep.fileset" pomRefId="mypom" useScope="compile" settingsFile="${maven.home}\conf\settings.xml" versionsId="dep.versions"/>

 <copy todir="${lib.dir}" flatten="true" overwrite="true">
    <fileset refid="${dep.fileset}"/>
 </copy>

После этого вызова переменная dep.versions содержит список всех меток версий, разделенных точкой с запятой.Тем не менее, я не уверен, как правильно удалить метки.

Спасибо

1 Ответ

1 голос
/ 15 ноября 2011

Хорошо, ребята, вот как я решил это

В Maven есть пользовательский маппер, который распространяется с maven-ant-tasks, который удаляет метки версий. Вы можете передать переменную versionIds из тега зависимостей.

<artifact:pom id="mypom" file="pom.xml"/>
<artifact:dependencies pathId="dep.classpath" filesetId="dep.fileset" pomRefId="mypom" useScope="compile" settingsFile="${maven.home}\conf\settings.xml" versionsId="dep.versions"/>

<copy todir="${lib.dir}" flatten="true" overwrite="true">
  <fileset refid="${dep.fileset}"/>
  <mapper classname="org.apache.maven.artifact.ant.VersionMapper" from="${dep.versions}" to="flatten" />
</copy>

Если вы не установили maven-ant-tasks в ANT_HOME / lib, вам также потребуется определить путь к классам в mapper.

...