Как ivy:publish работает?

25
задан cheffe 30 March 2015 в 04:49
поделиться

2 ответа

Необходимо определить "преобразователь". Что-то как:

<ivy:publish resolver="local" pubrevision="1.0"/>

Этим управляет шаблон. Этот страница покрывает его вполне прилично. Похоже, что Вы хотите, чтобы Ваш был:

<artifacts pattern="${dist.dir}/[organisation]-[module]-[revision]-[type].[ext]" />

И необходимо будет идентифицировать эти три банки как артефакты в файле ivy.xml. Что-то вроде этого:

<publications>
    <artifact name="utils"/>
    <artifact name="utils" type="source"/>
    <artifact name="utils" type="javadocs"/>
</publications>
10
ответ дан sblundy 28 November 2019 в 21:56
поделиться

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

Под покрытиями, ivy:retrieve задача на самом деле также инициировала ivy:resolve. Когда это, ivy:resolve происходит, файл, записано в Ваш локальный кэш плюща (в .ivy папка в user.home), который определяет, как разрешение произошло (который, изменения которого модули потребовались, чтобы завершать разрешение.), Когда ivy:publish встречен, та запись разрешения получается от кэша и используется для генерации ivy.xml для артефактов.

самая большая ловушка я нашел в выполнении, это - требование, что ivy:resolve и ivy:publish задачи оба быть загруженным тем же classloader, когда они выполняются муравьем. Самый легкий способ удостовериться это происходит, должен использовать loaderRef на Ваших taskdef задачах. Например (отмечают соответствие loaderRef теги):

<taskdef name="ivy-retrieve" 
     classname="org.apache.ivy.ant.IvyRetrieve" 
     classpathref="ivy.lib" 
     loaderRef="ivy.loader"/>
<taskdef name="ivy-publish" 
     classname="org.apache.ivy.ant.IvyPublish" 
     classpathref="ivy.lib" 
     loaderRef="ivy.loader"/>
0
ответ дан Jared 28 November 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: