1

Ok; 私の最初のスタックオーバーフローの質問。

ローカルの Nexus を使用してアーティファクトをダウンロードし、それらが存在しない場合にそれらのアーティファクトを外部リポジトリから自動的に取得しようとしています。途中でそれらをキャッシュします。

依存関係を処理するために Ant と Ivy を使用しています。

多かれ少なかれ、質問は次の質問に似ています: Ivy via Nexus proxy 私の理解に対する究極の答えは、ネクサスをリポジトリとして使用できるようにしましたが、キャッシュしませんでした (少なくとも私にとってはそうではありません)。

この主題の周りにたくさんの素材が浮かんでいるのを見てきましたが、正確な性質のものは何もありませんでした (悲しいことに、私はそれを理解できませんでした)。

それでは、まとめさせてください。公開する必要がある場合は URL を使用する必要があるため、URL リゾルバーを使用してローカル nexus リポジトリを使用しています (どこかで読んでください)。

<chain name="deploy-chain">
    <url
        name="nexus"
        m2compatible="true"
    >
        <artifact pattern="${nexus.host}/${nexus.pattern}" />
        <ivy pattern="${nexus.host}/${nexus.ivy.pattern}" />
    </url>

    <ibiblio
        name="maven.public"
        m2compatible="true"
    />
</chain>

ivy.xml と build.xml は非常に標準的なものです。

では、Ivy を使用してこれを行うことは可能ですか、それともこれはネクサスの問題ですか?

キャッシュまたはローカル リポジトリでアーティファクトを取得した後で、アーティファクト (指定された ant ターゲット) を Nexus に公開することは良い方法ですか? (それは本当に悪い習慣のように思えますが、唯一のオプションは常に優れたオプションです)

これはツールの誤用ですか?

4

1 に答える 1

2

ibiblioリゾルバーは、Maven リポジトリーを構成する最良の方法です。

次のivysettings.xmlファイルは、依存関係 Nexus をプルするように ivy を構成します。

<ivysettings>
    <settings defaultResolver="central-proxy"/>
    <resolvers>
        <ibiblio name="central-proxy" m2compatible="true" root="http://mynexushost/nexus/content/repositories/central/"/>
        <ibiblio name="release-repo"  m2compatible="true" root="http://mynexushost/nexus/content/repositories/releases/"/>
    </resolvers>
</ivysettings>

「central-proxy」リゾルバーは、Nexus にデフォルトで付属するデフォルトの Maven Central プロキシ リポジトリからコンテンツをプルするように構成されています。

「リリース リポジトリ」リゾルバは、コンテンツを Nexus リリース リポジトリに公開するときに使用できます。

于 2012-04-18T22:54:29.170 に答える