1

私の理解では、<ivy:resolve/>依存関係を構成済みリポジトリからローカルの Ivy キャッシュ (ルート${USER_HOME}/.ivy2) にコピーします。しかし、タスクの docsresolverを見た後、次のような属性がないことに驚きました。

<ivy:resolve file="ivy.xml" conf="compile" resolver="theResolverToUse"/>

だから私は尋ねます:特に(で)1つ以上のリゾルバーを定義できる場合、どのリゾルバーを使用するかをどのように指定しますか?ivysettings.xml前もって感謝します。

更新

たとえば、 my (emerging) で定義されたリゾルバーのスニペットは次のivysettings.xmlとおりです。

<resolvers>  
    <chain name="chainResolver" returnFirst="true">
        <url name="urlResolver">
            <ivy pattern="${ivyRepoRoot}/module_descriptors/${ivyModDescriptorPattern}"/>
            <artifact pattern="${ivyRepoRoot}/artifacts/${ivyArtifactPattern}"/>
        </url>

        <filesystem name="localFileResolver">
            <artifact pattern="${user.home}/.ivy2/local-cache/[artifact]-[revision].[ext]"/>
        </filesystem>
    </chain>  
    <sftp name="publisherResolver" user="fizz" userPassword="buzz" host="example.com">
        <ivy pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/module_descriptors/${ivyModDescriptorPattern}"/>
        <artifact pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/artifacts/${ivyArtifactPattern}"/>
    </sftp>
</resolvers>
4

2 に答える 2

2

Ivy では、リゾルバーとその関係、優先度、およびチェーンは解決タスクとは別に定義されます。

複数のリゾルバーをチェーンすることができ、チェーンされたリゾルバーでは、チェーン内の最初のリゾルバーと「最初に見つける」という概念に特に注意してください。

リゾルバーやチェーンが適切に構成されている場合、使用するリゾルバーを選択する必要はありません。これは、リゾルバーが異なる環境で異なる動作をする場合に非常に便利です。

于 2013-02-21T17:23:38.743 に答える
0

チェーンリゾルバーは便利ですが、より詳細な制御が必要な場合は、次の回答で説明されているように、モジュールセクションを使用することをお勧めします。

于 2013-02-21T20:04:01.163 に答える