2015-09-30 3 views
0

У меня есть сервер Artifactory, который я использую для разрешения зависимостей Ivy. Когда я хочу добавить зависимость к моему ivy.xml, мне иногда приходится добавлять явный вложенный тег <artifact>, и я не понимаю, почему.Почему Artifactory требует явного артефакта для некоторых зависимостей Ivy?

Пример:

<dependency org="com.google" name="guava" rev="[7,)" conf="compile,runtime" /> 

Пример B

<dependency org="com.twelvemonkeys.common" name="common-image" rev="3.0.1" conf="compile,runtime"> 
    <artifact name="common-image" ext="jar"/> 
</dependency> 

Глядя на кэшированных зависимостей в представлении Artifactory дерева, нет ничего, что указывает на то, что последний пример должен нуждаться в дополнительной информации чтобы разрешить зависимость, но Artifactory предлагает ее сам, и разрешение не работает без выхода.

Я использую Ivy против репозитория с маской Maven. Мои настройки, где генерируются Artifactory и выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?> 
<ivy-settings> 
    <settings defaultResolver="main" /> 
    <resolvers> 
    <chain name="main"> 
     <ibiblio 
     name="public" 
     m2compatible="true" 
     root="http://example.org/artifactory/remote-repos" /> 
    </chain> 
    </resolvers> 
</ivy-settings> 

Почему Artifactory требует явного артефакта для некоторых зависимостей плюща, а не для других?

Edit 20151005: Добавлен Ivy настройки Пример

ответ

1

инструмент выполнения разрешения зависимостей является клиентом Плющ и не Artifactory. Основываясь на замедлении зависимостей, Ivy resolver решает, какой артефакт запрашивать из репозитория (в вашем случае это Artifactory).
Функция artifact обеспечивает больший контроль над зависимостями, для которых вы не контролируете свой файл плюща.
Он позволяет указать требуемые артефакты, если зависимость не имеет плющ-файла.
Для получения дополнительной информации об объекте артефакта и при его использовании проконсультируйтесь с Ivy documentation.

+0

Я обновил текст вопроса более подробно. Насколько я понимаю ваш ответ, элемент «артефакт» необходим, когда нет настроек плюща для зависимостей в репозитории? AFAICT, ни гуава, ни обычное изображение не имеют конфигурацию Ivy, но для первого я не нуждаюсь в теге артефакта. Что мне не хватает? – mhvelplund