отчет плюща для всего репо? - PullRequest
1 голос
/ 10 января 2012

Я работаю над внутренним репозиторием плюща с приличным количеством проектов под ним, каждый со многими ревизиями. Я хотел бы сделать отчет о зависимостях для всего хранилища, показывающий, какие версии каких артефактов зависят от каких ревизий других артефактов. Очевидно, что не так уж сложно создать сценарий для анализа опубликованных 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>

1 Ответ

2 голосов
/ 10 января 2012

Документация для Представить говорит:

Чтобы создать отчет XML для всех последних версий всех модулей в вашем хранилище:

<ivy:repreport />

Ограничение : для этой задачи требуется возможность просмотра хранилища, и поэтому оно ограничено распознавателями, поддерживающими листинг хранилища.В частности, это означает, что не работает создание отчетов о всех организациях в хранилище в режиме совместимости с m2.Кроме того, чтобы иметь возможность составлять список организаций, для выполнения этой задачи необходим токен [организация] в используемых средствах разрешения.

Так что это должно полностью работать.

Как упоминалось вКомментарий: важно, чтобы в вашем хранилище были файлы ivy.xml для артефактов.В противном случае ivy не сможет распознать зависимости между артефактами, и ваш отчет будет пустым.

...