2009-06-23 16 views
11

誰かがMavenのmirror/mirrorOfのようなIvyでの指定方法を知っていますか?私はローカルのMavenプロキシ(Nexus)を使って作業しており、Nexusプロキシにアクセスする親リポジトリを指定するツールが必要です。 MavenのでIvy via Nexusプロキシ

私は単純に実行します。

<mirrors> 
    <mirror> 
    <id>central-mirror</id> 
    <mirrorOf>central</mirrorOf> 
    <url>http://localhost:8081/content/repositories/central</url> 
    </mirror> 
</mirrors> 

が、私はアイビーでのオプションのこの種を見つけることができません。

答えて

6

このようなオプションは直接存在しないと思います。 chainを実装し、Nexusリポジトリをそのチェーンの中心に置くことができます。チェーンがどのように正しく動作するかを理解していれば、Ivyはリポジトリが中心になる前にリポジトリをチェックします。

詳細はtutorialを参照してください。

+1

ありがとうございました - それは私が恐れていたものです。アイビーはメイヴンと仕事をした後、私の期待通りに生きていません。 –

+2

アイビーは、依存関係管理に近づく方法が異なります。 –

+6

-1からMarkのコメント。それは違う方法ではなく、欠けている機能です。アナロジーとして、「プロキシ設定」の設定がないブラウザを使用しているとします。ウェブブラウジングに別の方法でアクセスするわけではありません。つまり、実際に必要なときにソフトウェアが使用できなくなりますプロキシを設定します。 –

-1

私はArchivaと同じことをしましたが、これは非常に似ています。あなたは、次の新しいチェーンに宣言する必要のみ:

<chain name="private"> 
<url name="archiva" m2compatible="true"> 
    <ivy pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/ivy.xml" /> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact].[ext]" /> 
    </url> 
</chain> 
+1

Archivaを使用してプロキシを実現することは問題の範囲にはありません。あなたは、さまざまな方法でそれを行うことができます。問題は、アイビーからそれを使用することです。 –

+0

アイビーにはこのような選択肢はないと思います。 –

-1

Archivaはアイビーのメタデータ(ivy.xml)は通常存在しないのMaven 2つのリポジトリ(Mavenのメタデータとアーティファクト) を管理します。 Maven 2のレイアウトは[organization]/[module]/[revision]/[artifact] - [revision]。[ext]です。

私たちは、あなたが(Ivy docs @詳細)何をしたいん公共のリゾルバを作成する必要があるだけで、以下の情報を提供するために、

<url name="archiva" m2compatible="true"> 
    <artifact pattern="http://..../archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
    </url> 
</chain> 

または

<settings defaultResolver="archiva"/> 
    <resolvers> 
<ibiblio name="archiva" m2compatible="true" root="http://.../archiva/repository/internal/[organization]/[module]/[revision]/[artifact]-[revision].[ext]"/> 
    </resolvers> 
+0

Archivaを使用してプロキシを実現することは問題の範囲にはありません。あなたは、さまざまな方法でそれを行うことができます。問題は、アイビーからそれを使用することです。 –

8

を持って

基本的には次のスニペットを$ USERHOME/.ivy2/ivysettings-public.xmlの下に保存します。これはトリックを行う必要があります。

<ivysettings> 
    <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
    </resolvers> 
</ivysettings> 
  • そのまま標準インストールでは、URLに 'ネクサス' を持っています!
  • アーティファクトを展開する必要がある場合は、解決方法は共有リゾルバ(上記のドキュメントへのリンクを参照)と同様のことを行うことだと思いますが、試していません。
  • ローカルのURLを標準の 'content/groups/public'に解決するように変更しました。これは、上記のmaven設定のフラグメントでは、すべてのコールをミラー経由で通過させるので便利です。 NexusのUIにそのグループに追加のリポジトリを追加するだけで、うまくいくはずです。
  • それはデフォルトを尊重していない自分のivysettingsだプロジェクトをロードした場合、これらの設定がロードされ得ることはありませんし、あなたが戻ってゼロに再びですが:(
+1

私はそれを試してみますが、プロジェクトのivysettings.xmlがユーザの設定を完全に上書きするという事実は、私にとっては役に立たないと思われます。とにかくありがとう! –

+0

それは、リポジトリからプロジェクトを取得してビルドするだけで問題になるという問題があります。地元の環境に何らかの変更を加えれば、それはすべてウインドウに表示されます...しかし、とにかくお返事いただきありがとうございます! –

+0

https://svn.apache.org/repos/asf/ant/core/trunk/[email protected]#checkstyleでこの手法を試してみましたが、それは効果がないようです。前述のように「http://repo1.maven.org/maven2/ ...をダウンロードする」というメッセージが表示されます。 –

2

これは私がそれを働かせた方法です( @Heronからの答えは)私のために動作しませんでした:

<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" /> 
0:Antのビルドから、それに

<ivysettings> 
    <settings defaultResolver="default"/> 
    <property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" /> 
    <resolvers> 
    <chain name="default"> 
     <ibiblio name="public" m2compatible="true" root="http://nexus-server:8081/nexus/content/groups/public"/> 
    </chain> 
    </resolvers> 
</ivysettings> 

REFERE:

このコンテンツを持つファイルを作成します。

Ivyは現在、自分のネクサスリポジトリからの依存関係を解決することができます。