8

私はいくつかのjarファイルを持っています(そのうちのいくつかは互いに依存しています)、そして私のプロジェクトのためにアイビーにそれらを管理させようとしています。

「ローカル」(ユーザーディレクトリベース) リポジトリを作成したくありません。他のユーザーが私の svn プロジェクトをチェックアウトして、ローカル/共有リポジトリのセットアップなしで実行できるようにしたいからです。さまざまな理由から、これらのファイルを実際に使用しているリポジトリに追加できません。

プロジェクトはこれらのファイルに依存しており、SVN で使用しています。過去に、私は通常のツタの依存関係の xml ファイルを持っていました。これらのファイルは、リモート リポジトリを指す設定 xml ファイルを使用します。以前は、土壇場でビルド タスクを使用してこれらのファイルを lib フォルダーからビルド フォルダーにコピーしていました。これは、ivy ファイルシステム リゾルバーの機能を無視する壊れた悪用のように感じます。

(3 つのビルド可能なプロジェクトの ivy.xml と build.xml は、別のベース ディレクトリにある同じ ivysettings.xml を使用します。)

プロジェクトの 90% が完了したように感じます。リゾルバー チェーンで最初のリゾルバーを projectdir/lib の jar ファイルでチェックするには、ivysettings.xml でファイル システム リゾルバーをどこに向ければよいでしょうか?

4

1 に答える 1

3

ivy task buildlistを見ましたか?

これを使用して、3 つのモジュールが構築される順序を制御できます。各モジュールがビルドされると、ローカル リポジトリに公開できるため、チェーン内の次のモジュールに間に合うように jar が存在することが保証されます。

   build.xml
   ivysettings.xml
   --> module1 --> build.xml
                   ivy.xml
   --> module2 --> build.xml
                   ivy.xml
   --> module3 --> build.xml
                   ivy.xml

設定ファイルはすべてのプロジェクトで共有できます。ビルドしたモジュールはローカルで利用可能であり、それ以外はすべて、プロジェクトのすべてのユーザーが利用できるデフォルトのリポジトリからのものです (この場合は Maven)。

<ivysettings>
        <settings defaultResolver="maven2"/>
        <resolvers>
                <ibiblio name="maven2" m2compatible="true"/>

                <filesystem name="local">
                    <ivy pattern="${local.rep.dir}/.."/>
                    <artifact pattern="${local.rep.dir}/.."/>
                </filesystem>
        </resolvers>
        <modules>
                <module organisation="org.me" name="module1" resolver="local"/>
                <module organisation="org.me" name="module2" resolver="local"/>
                ..
        </modules>
</ivysettings>

最後に、外部に公開するときに、ivyインストールタスクを使用して、既にローカルで公開したモジュールを最終的なリポジトリの場所にコピーできます。

于 2010-02-07T14:18:19.560 に答える