Извлечение зависимостей с пустым типом - PullRequest
1 голос
/ 11 июня 2011

Я пытаюсь выяснить, как пропустить часть [type] в шаблоне извлечения Ivy для артефактов, для которых тип не объявлен.Я использую следующее выражение муравья:

<ivy:retrieve pattern="${lib.dir}/[artifact](-[type]).[ext]" conf="compile" />

Несмотря на круглые скобки, Ivy создает файлы типа

  • junit-jar.jar
  • junit-javadoc.jar
  • junit-source.jar

Последние два, как и ожидалось, но первый должен быть "junit.jar" вместо этого.

Результат такой же, как когда я опускаю скобки.

Редактировать:

Что я делаю до сих пор, чтобы обойти проблему: у меня есть несколькополучить операторы в build.xml:

<ivy:retrieve pattern="${lib.dir}/[artifact]-[type].[ext]" type="source" /> <ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" type="jar" />

(Атрибут "conf" в исходном сообщении не связан с этой темой.)

Но это выглядит довольно глупо, когда есть функция дополнительных токенов.

1 Ответ

0 голосов
/ 12 июня 2011

Тип по умолчанию jar, его нельзя опускать. См. Документация Так что это (- [тип]) не влияет.

Возможно, вы могли бы сделать что-то подобное в build.xml (если вы управляете ivy.xml).

<ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" conf="compile" />
<ivy:retrieve pattern="${lib.dir}/[artifact](-[type]).[ext]" conf="extras" />

Вам нужно будет опубликовать jar в конфигурации компиляции, а другие jar - в дополнительной конфигурации.

Или просто назовите другие файлы: junit-javadoc и junit-source в файле ivy.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
    <info organisation="junit"
        module="jnuit"
        revision="4.8.2"
        status="release"
        publication="20110531150115"
        default="true"
    />
    <configurations>
        <conf name="default" visibility="public"/>
    </configurations>
    <publications>
      <artifact name="junit"      type="jar" />
      <artifact name="junit-sources"      type="jar" />
      <artifact name="junit-javadoc"      type="jar" />
    </publications>
</ivy-module>
...