2012-04-18 12 views
1

Ok;私の最初のstackoverflowの質問。Ivyを使用してアーティファクトをキャッシュするネクサス

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

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

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

私は、対象の周りに多くの物質が浮遊しているのを見ましたが、正確な性質は何もありません(そして悲しいことに、私はそれを理解できませんでした)。

だから私はそれを包みましょう。 我々が公開する必要がある場合、我々はURLを使用する必要がありますので、私は、URLリゾルバを使用してローカルネクサスリポジトリを使用しています(つまりどこかで読ん):

<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に公開することをお勧めしますか? (これは本当に悪い習慣のようですが、唯一のオプションは常に素晴らしいオプションです)

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

答えて

2

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

次のivysettings.xmlファイルは、依存関係を引き出すために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プロキシリポジトリからコンテンツを取得するように設定されています。

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

+0

ありがとうMark。出来た。 URLリゾルバなどの他の多くのことを試したり、共有キャッシュなどを変更しても動作するように見えましたが、キャッシングが行われました。 もう一度ありがとうございます。 –

関連する問題