質問

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

Mavenでは単純に次のことを行います。

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

しかし、Ivyにはこの種のオプションはありません。

役に立ちましたか?

解決

このようなオプションが直接存在するとは思わない。 チェーンを実装して、Nexusリポジトリを先に置くことができますそのチェーンの中央の。チェーンがどのように正しく機能するかを理解していれば(これは大きなことです)、リポジトリに関連するコンテンツが中央にある限り、Ivyは中央の前にリポジトリをチェックします。

詳細については、チュートリアルをご覧ください。

他のヒント

必要な処理を行うパブリックリゾルバを作成する必要があります(詳細は@ Ivyドキュメント

基本的に次のスニペットを$ USERHOME / .ivy2 / ivysettings-public.xmlに保存します。これでうまくいくはずです。

<ivysettings> 
  <resolvers> 
    <ibiblio name="public" m2compatible="true" root="http://localhost:8081/content/groups/public"/> 
  </resolvers> 
</ivysettings>
  • 変更されていない標準インストールのURLには「nexus」が含まれています!
  • アーティファクトをデプロイする必要がある場合、解決策は共有リゾルバーに似た何かを行うことだと思います(上記のドキュメントへのリンクを参照)が、試していません。
  • ローカルのURLを変更して、標準の 'content / groups / public'に解決します。これは、上記のmaven設定フラグメントでは、中央への呼び出しだけでなく、すべての呼び出しをミラー経由で渡すためです。 Nexus UIでそのグループに追加のリポジトリが追加されたら、それらを追加するだけで問題ありません。
  • プロジェクトがデフォルトを尊重しない独自のivysettingsをロードする場合、これらの設定はロードされず、再びゼロに戻ります:(

これは私がそれを機能させた方法です(@Heronからの答えは私には機能しませんでした):

このコンテンツでファイルを作成します:

<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>

antビルドから参照してください:

<ivy:settings file="/Users/wdb/.ivy2/ivysettings-public.xml" />

Ivyは、nexusリポジトリから依存関係を解決できるようになりました。

私は同じことをしましたが、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>

ArchivaはMaven 2リポジトリ(Mavenメタデータを含むアーティファクト)を管理します 通常、Ivyメタデータ(ivy.xml)はありません。 また、Maven 2のレイアウトは[組織] / [モジュール] / [リビジョン] / [アーティファクト]-[リビジョン]。[拡張子]です。

次の情報を提供するだけです

<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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top