2016-07-08 1 views
0

Я использую ivy 2.4.0 с ant 1.9.2, и я хочу, чтобы иметь возможность подталкивать артефакты в локальный репозиторий и извлекать их, а также их транзитивные зависимости. Мои резольверы выглядеть следующим образом:Транзитные зависимости не разрешены с помощью <filesystem> resolver

<resolvers> 
    <filesystem name="local" checkmodified="true" m2compatible="true"> 
     <ivy pattern="/something/.ivy/[orgPath]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"/> 
     <artifact pattern="/something/.ivy/[orgPath]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" /> 
    </filesystem> 

    <chain name="main" returnFirst="true"> 
     <resolver ref="local" /> 
     <ibiblio name="artifactory" 
       checkmodified="true" 
       changingMatcher="regexp" 
       changingPattern=".*-SNAPSHOT.*" 
       m2compatible="true" 
       usepoms="true" 
       root="url to artifactory" /> 
    </chain> 
    </resolvers> 

Артефакты опубликованы (как П и банки являются публикацией) с помощью:

<ivy:deliver deliverpattern="/my project/ivy.xml"/> 
<ivy:makepom ivyfile="ivy.xml" pomfile="pom.xml"/> 
<ivy:publish resolver="local or artifactory" overwrite="true" publishivy="false"> 
    <artifacts pattern="/my project/[artifact](-[classifier]).[ext]" /> 
</ivy:publish> 

я могу опубликовать артефакт моей local хранилища, однако, когда я принесу его транзитивным зависимостей не извлекаются.

Я также попытался опубликовать файл плюща, но это ничего не изменило, и это сводит меня с ума, потому что все работает так, как ожидалось, если я опубликую/извлечу из репозитория Artifactory. Что может быть отсутствующим или плохо настроенным?

ответ

0

Я предлагаю настроить Artifactory как репозиторий по умолчанию и использовать директиву modules, чтобы сказать плющу использовать локальное репо.

<ivysettings> 
    <settings defaultResolver="artifactory"/> 
    <resolvers> 
     <ibiblio name="artifactory" m2compatible="true" root="http://path/to/artifactory/repo"/> 
     <filesystem name="local"> 
      <artifact pattern="${ivy.settings.dir}/lib/[artifact]-[revision].[ext]"/> 
     </filesystem> 
    </resolvers> 
    <modules> 
     <module organisation="myorg1" resolver="local"/> 
     <module organisation="myorg2" name="module1" resolver="local"/> 
     <module organisation="myorg2" name="module2" resolver="local"/> 
    </modules> 
</ivysettings> 
+0

Это хорошая идея, спасибо. Однако моя проблема больше связана с локальной конфигурацией репо: я не могу получить транзитивные зависимости, когда артефакты публикуются в моем локальном репо. Макет выглядит так же, как artifactory, хотя ... – Jerome

+0

@Jerome По-прежнему не работает? Нечетный ... Задав очевидный вопрос, вы отключили транзитивные зависимости? Менее очевидно, что вы используете конфигурации плюща? –