Я работаю над внутренним репозиторием плюща с приличным количеством проектов под ним, каждый со многими ревизиями. Я хотел бы сделать отчет о зависимостях для всего хранилища, показывающий, какие версии каких артефактов зависят от каких ревизий других артефактов. Очевидно, что не так уж сложно создать сценарий для анализа опубликованных XML-файлов ivy, но если эта функция уже существует, я воспользуюсь ею. Что-то вроде задачи репортажа было бы неплохо, но для всего репо.
Моя главная цель здесь - получить отчет об артефактах, на которые не ссылаются никакие другие артефакты, чтобы составить список кандидатов на удаление из репо.
Итак, есть ли у ivy способ создания отчета о зависимостях и всего хранилища?
Редактировать: Работая с этим, он выглядит как плющ: репорт - это путь.
Вот мой файл build.xml:
<project name="Report Build" xmlns:ivy="antlib:org.apache.ivy.ant" basedir=".">
<property name="ivy.version" value="2.2.0"/>
<property name="ivy.home" value="${user.home}/.ivy2"/>
<target name="fetch-ivy" unless="offline" description="Install Ivy if it doesn't already exist">
<mkdir dir="${ivy.home}"/>
<get
src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"
dest="${ivy.home}" usetimestamp="true"/>
</target>
<target name="init-ivy" depends="fetch-ivy" unless="ivy-initialized">
<path id="ivy.lib.path">
<fileset dir="${ivy.home}" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
<property name="ivy-initialized" value="yes"/>
</target>
<target name="report" depends="init-ivy">
<ivy:settings file="ivy-settings-report.xml" id="report.ivy.settings"/>
<ivy:repreport settingsref="report.ivy.settings"/>
</target>
</project>
А вот мой файл настроек плюща:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
<settings defaultResolver="main"/>
<resolvers>
<chain name="main">
<url name="internalartifacts" m2compatible="false">
<artifact
pattern="http://internalartifacts.local/[organization]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
<ivy pattern="http://internalartifacts.local/[organization]/[module]/[revision]/ivy-[revision].xml"/>
</url>
</chain>
</resolvers>
</ivy-settings>