Плющ: разрешить с явным решателем - PullRequest
3 голосов
/ 08 марта 2011

У меня настроены два резольвера. Одним из них является репо компании, другой репо местного разработчика. Я хочу:

<ivy:resolve  />
<ivy:install from="company" to="local" ... />

важно, чтобы первое решение было отправлено непосредственно в репозиторий компании и собрало все необходимые модули.

Проблема: я не могу принудительно разрешить использование явно определенного распознавателя. Я попытался использовать «модули» в своем файле настроек, но затем я получаю только некоторые модули от компании, остальные все еще считываются из локальной системы (которая в то время пуста, поэтому я получаю ошибки разрешения).

Я могу использовать 2 файла настроек, один для подготовки и один для локальной разработки, но должен быть лучший способ. Почему «опубликовать» может установить преобразователь, а «разрешить» - нет?

1 Ответ

5 голосов
/ 15 марта 2011

Почему «опубликовать» может установить преобразователь, а «разрешить» - нет?

Разрешить абсолютно невозможно.Обычно это делается с помощью нескольких файлов настроек, как вы уже сказали, что не хотите делать.На практике я нахожу очень распространенным (если не стандартным) использование более одного файла настроек в сочетании со свойством settingsRef вызова resol.

В нашем проекте мы делаем что-то вроде:

...
<target name="init-ivy" depends="">
    <ivy:settings id="install.settings"
                  file="${project.ivy.config.dir}/ivysettings-install.xml"/>
    <ivy:settings id="internet.settings"
                  file="${project.ivy.config.dir}/ivysettings-internet.xml"/>
    ...
</target>
...
<!-- note init-ivy has already been called before this target runs -->
<target name="resolve-internet" if="internet.connected" >
        <echo>"internet connected! Resolving dependencies via internet..."<echo/>
        <ivy:resolve settingsRef="internet.settings"
                     haltonfailure="false" failureproperty="resolve.failed"/>
</target>
...

Конечно, в более простом проекте вы всегда можете автоматически вызывать «основной» файл настроек (либо помещая его в корневой каталог, либо редактируя свойство ivy $ivy.settings.file), таквы используете настройки «install» только при запуске цели установки.

...