У меня есть следующая проблема:
Мой проект (C ++) имеет зависимость от системной библиотеки. Для этого я определяю в файле ivy.xml новый раздел в зависимости:
<ivy-module version="2.0">
<info organisation="org.acme" module="mymodule">
<configurations>
<conf name="system"/>
</configurations>
[...]
<dependencies>
<dependency name="pthread" rev="*" conf="system"/>
</dependencies>
</ivy>
Проблема, с которой я сталкиваюсь, заключается в том, что Айви пытается разрешить зависимость от pthread
перед публикацией mymodule
,
Команда использования для публикации следующая:
java -jar ivy.jar -debug -ivy ivy.xml -publish publish -publishpattern "<ivy-pattern>" -status integration -revision 0.0.1-SNAPSHOT -settings ivysettings.xml -overwrite
Я проверил документацию Ivy, но не могу найти подсказки о том, как сказать Ivy, чтобы пропустить разрешение зависимостей для конкретной конфигурации.
У кого-нибудь из вас есть подсказка или идея, как это настроить?
Заранее большое спасибо.
ОБНОВИТЬ:
Мне удалось исключить зависимость для конкретной конфигурации с помощью следующего тега зависимостей:
<dependencies>
<dependency name="pthread" rev="*" conf="system"/>
<exclude conf="system"/>
</dependencies>
Для этого вы должны предоставить ogranisation, модуль и ревизию, которые необходимы для опубликовать задачу. Там причина в том, что если это не предусмотрено publish
будет искать его в последнем разрешенном модуле (проверьте атрибуты в задаче публикации).
Поэтому, когда вы вызываете задачу публикации, она потребует либо предоставления всех этих атрибутов, либо вызова, чтобы решить задачу заранее. Необходимые атрибуты:
Вы можете проверить ссылку, чтобы увидеть, что это такое, даже если это довольно очевидно.
Теперь я не знаю, как (или если вообще) вы не можете передать все эти параметры при вызове плюща в качестве банки. Может быть, использовать ivyfile
как указано Вот. Вот почему я дал ответ о том, как сделать это с помощью задачи муравья — хорошо, и потому, что обычно он более чистый и легче использовать плющ с муравьем 🙂
Других решений пока нет …