Ivy -выводит результаты разрешения в файл ivy

Разрешив мой файл ivy.xml, я хотел бы создать новый файл resolved-ivy.xml, состоящий из всех транзитивных зависимостей , найденных в разрешении. Возможно ли это сделать?

Это отличается от доставки, которая, (я полагаю, )записывает только непосредственные зависимости от вашего ivy.xml, а не транзитивные зависимости. ЗадачаdeliverAnt имеет атрибут delivertarget, который выглядит в документации так, как будто он должен это делать. На практике это работает только для модулей в одной организации (, поэтому обычно не для всех зависимостей )и создает файл для каждого модуля.

Он также отличается от ivy-reportXML-файла, созданного во время разрешения, но не сильно отличается. Если то, что я пытаюсь сделать, невозможно, то, я полагаю, я просто взломаю этот файл напрямую.

Контекст здесь пытается включить повторяемые воспроизводимые сборки , в том числе при наличии изменений (новых библиотек, версий )в репозиторий. В Интернете есть сообщения, которые пытаются это сделать, и ни один из них, который я нашел, не может сделать это должным образом.

  • Дополнения к репозиторию Ivy могут изменить результаты разрешения, в частности, если какие-либо зависимости в любом месте репозитория (, а не только ваш проект ), имеют зависимости от диапазона. Пример:Aзависит от B;[2.0,4.0], а B;3.1позже добавляется в репозиторий.
  • Идея состоит в том, чтобы разрешить как обычно, записать разрешение в виде сплющенного файла Ivy, сохранить его в VCS вашего проекта для этого тега (или любого другого )и впоследствии разрешить этот файл с помощью transitive="false". Предполагая, что существующие элементы в репозитории не изменяются, это позволяет повторять сборки.
  • Если у кого-нибудь есть лучшие идеи для этого,Я весь во внимании. На данный момент я ожидаю, что мне придется взломать некоторую комбинацию ResolveEngine, чтобы сделать ResolveReportдоступным, а затем добавить пользовательский DeliverEngine, чтобы использовать его.

7
задан Joe Kearney 4 May 2012 в 07:36
поделиться