2016-10-26 4 views
0

У меня проблема:Как пропустить разрешающие зависимости конкретной конфигурации в Ivy?

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

Есть ли у вас, ребята, намек или идея, как это настроить?

Большое спасибо.

UPDATE: мне удалось исключить зависимость для конкретной конфигурации, используя следующие зависимости тег:

<dependencies> 
    <dependency name="pthread" rev="*" conf="system"/> 
    <exclude conf="system"/> 
    </dependencies>  
+0

Не могли бы вы разместить скрипт муравей, который использовался для публикации? – cantSleepNow

+0

Я использую ivy.jar для публикации компонента. Дайте мне знать, если вам нужен полный пример с ivysettings.xml и ivy.xml –

ответ

0

Для того, чтобы сделать это, вы должны предоставить ogranisation, модуль и пересмотр, который необходим для publish task. Причина в том, что если это не предусмотрено, publish будет искать его в последнем разрешенном модуле (проверьте задачу публикации для атрибутов). Поэтому, когда вы вызываете задачу публикации, для этого требуется либо предоставить все эти атрибуты, либо вызвать решение задачи заранее. Атрибуты, которые необходимы являются:

  • pubrevision
  • artifactspattern
  • организация
  • модуль
  • редакция
  • srcivypattern

Вы можете проверить ссылку, чтобы увидеть, какая из что, даже подумал, что это очень понятно.

Теперь я не знаю, как (или если вообще) вы можете передать все эти параметры при вызове плюща в качестве банки. Возможно, используйте ivyfile, как указано here. Вот почему я дал ответ о том, как это сделать с муравьиной задачей - хорошо, что и потому, что обычно чище и проще использовать плющ с муравьем :)